summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py39
1 files changed, 15 insertions, 24 deletions
diff --git a/chimere/models.py b/chimere/models.py
index 5282fca..52b13f4 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -238,16 +238,11 @@ class Marker(GeographicItem):
return self.name
@property
- def multimedia_pictures(self):
- pict = self.pictures.filter(miniature=False)
- if pict.count():
- return pict.all()
-
- @property
- def multimedia_files(self):
- mm = self.multimedia_files.filter()
- if mm.count():
- return mm.all()
+ def multimedia_items(self):
+ pict = list(self.pictures.filter(miniature=False).all())
+ mm = list(self.multimedia_files.all())
+ items = [(item.order, item) for item in pict + mm]
+ return [item for order, item in sorted(items)]
@property
def default_picture(self):
@@ -359,7 +354,8 @@ class MultimediaType(models.Model):
media_type = models.CharField(_(u"Media type"), max_length=1,
choices=MEDIA_TYPES)
name = models.CharField(_(u"Name"), max_length=150)
- mime_type = models.CharField(_(u"Mime type"), max_length=50)
+ mime_type = models.CharField(_(u"Mime type"), max_length=50, blank=True,
+ null=True)
available = models.BooleanField(_(u"Available"), default=True)
def __unicode__(self):
@@ -367,9 +363,8 @@ class MultimediaType(models.Model):
class MultimediaFile(models.Model):
name = models.CharField(_(u"Name"), max_length=150, blank=True, null=True)
- url = models.CharField(_(u"Url"), max_length=200, blank=True, null=True)
- iframe = models.CharField(_(u"Iframe"), max_length=1000, blank=True,
- null=True)
+ url = models.CharField(_(u"Url"), max_length=200)
+ iframe = models.BooleanField(u"Iframe", default=False)
order = models.IntegerField(_(u"Order"), default=1)
multimedia_type = models.ForeignKey(MultimediaType, blank=True,
null=True)
@@ -378,16 +373,12 @@ class MultimediaFile(models.Model):
return self.name
def clean(self):
- if self.url and not self.multimedia_type:
- raise ValidationError(_(u"Multimedia type is mandatory if you "\
- u"provide an url."))
- if not self.url and not self.iframe:
- raise ValidationError(_(u"You must provide at least provide an "\
- u" url or an iframe."))
- if self.url and self.iframe:
- raise ValidationError(_(u"You must provide an url OR an"\
- u"iframe."))
-
+ if self.url and not self.iframe:
+ raise ValidationError(_(u"Multimedia type is mandatory if is "\
+ u"not an iframe."))
+ if self.multimedia_type and self.iframe:
+ raise ValidationError(_(u"There is no multimedia type associated "\
+ u"to an iframe."))
class PictureFile(models.Model):
miniature = models.BooleanField(_(u"Miniature"))