summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-11-30 17:22:14 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:21 +0100
commit3c25d1f4ab24a1bea9b4be0757f9b8f243564954 (patch)
tree8e11704684e46825b997518385263fde8df651d4 /ishtar_common/models.py
parent4bdd09e65a77ae48ddba0569eb07dfd4006cb55a (diff)
downloadIshtar-3c25d1f4ab24a1bea9b4be0757f9b8f243564954.tar.bz2
Ishtar-3c25d1f4ab24a1bea9b4be0757f9b8f243564954.zip
Documents: add pages fields to related source
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index ffe302454..722e134ac 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3027,10 +3027,13 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel,
issn = models.CharField(_("ISSN"), blank=True, null=True, max_length=10)
isbn = models.CharField(_("ISBN"), blank=True, null=True, max_length=17)
source = models.ForeignKey("Document", verbose_name=_("Source"),
- blank=True, null=True)
+ blank=True, null=True, related_name="children")
source_free_input = models.CharField(
verbose_name=_("Source - free input"), blank=True, null=True,
max_length=500)
+ source_page_range = models.CharField(
+ verbose_name=_("Source - page range"), blank=True, null=True,
+ max_length=500)
support_type = models.ForeignKey(SupportType, verbose_name=_("Medium"),
on_delete=models.SET_NULL,
blank=True, null=True, )
@@ -3147,6 +3150,14 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel,
def natural_key(self):
return (self.external_id,)
+ def sheet_header(self):
+ headers = []
+ if self.complete_identifier:
+ headers.append(self.complete_identifier)
+ if self.title:
+ headers.append(self.title)
+ return " - ".join(headers)
+
@property
def has_iframe(self):
return self.format_type and self.format_type.iframe_template
@@ -3177,6 +3188,23 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel,
except Container.DoesNotExist:
return
+ @property
+ def pdf_attached(self):
+ if not self.associated_file and (not self.source
+ or not self.source.associated_file):
+ return
+ extra = ""
+ if self.associated_file:
+ url = self.associated_file.url
+ else:
+ url = self.source.associated_file.url
+ if self.source_page_range:
+ extra = "#page="
+ extra += self.source_page_range.split("-")[0].split(";")[0]
+ if not url.lower().endswith(".pdf"):
+ return
+ return url + extra
+
"""
@property
def code(self):