diff options
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 |
commit | 3c25d1f4ab24a1bea9b4be0757f9b8f243564954 (patch) | |
tree | 8e11704684e46825b997518385263fde8df651d4 /ishtar_common/models.py | |
parent | 4bdd09e65a77ae48ddba0569eb07dfd4006cb55a (diff) | |
download | Ishtar-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.py | 30 |
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): |