summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
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