diff options
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 39 |
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")) |
