summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-11-10 11:07:20 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:21 +0100
commit715be2448ba981981216e0b3bc194e17699efd57 (patch)
treec68d3be460d2d9e5d5119564ada092084a7aa8c2 /ishtar_common/models.py
parentddccc8af774abd592a38aa5ed70975a1168720c5 (diff)
downloadIshtar-715be2448ba981981216e0b3bc194e17699efd57.tar.bz2
Ishtar-715be2448ba981981216e0b3bc194e17699efd57.zip
Document: add iframe template for documents
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 07a052470..ee767a4ef 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -59,6 +59,7 @@ from django.core.urlresolvers import reverse, NoReverseMatch
from django.db.models import Q, Max, Count, F
from django.db.models.signals import post_save, post_delete, m2m_changed
from django.db.utils import DatabaseError
+from django.template import Context, Template
from django.template.defaultfilters import slugify
from django.utils.functional import lazy
from ishtar_common.utils import ugettext_lazy as _, ugettext, \
@@ -2588,6 +2589,12 @@ post_delete.connect(post_save_cache, sender=SupportType)
class Format(GeneralType):
+ iframe_template = models.TextField(
+ _("Iframe template"), blank=True, default="",
+ help_text=_("Template to insert an iframe for this format. Use django "
+ "template with a {{document}} variable matching the "
+ "current document."))
+
class Meta:
verbose_name = _("Format type")
verbose_name_plural = _("Format types")
@@ -2955,10 +2962,10 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel,
source_free_input = models.CharField(
verbose_name=_("Source - free input"), blank=True, null=True,
max_length=500)
- support_type = models.ForeignKey(SupportType, verbose_name=_("Support"),
+ support_type = models.ForeignKey(SupportType, verbose_name=_("Medium"),
on_delete=models.SET_NULL,
blank=True, null=True, )
- format_type = models.ForeignKey(Format, verbose_name=_("Medium"),
+ format_type = models.ForeignKey(Format, verbose_name=_("Format"),
on_delete=models.SET_NULL,
blank=True, null=True)
scale = models.CharField(_("Scale"), max_length=30, null=True,
@@ -3023,6 +3030,16 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel,
return (self.external_id,)
@property
+ def has_iframe(self):
+ return self.format_type and self.format_type.iframe_template
+
+ def get_iframe(self):
+ if not self.has_iframe:
+ return ""
+ return Template(self.format_type.iframe_template).render(
+ Context({"document": self}))
+
+ @property
def container(self):
if not self.container_id:
return