diff -r 2f978b081c4c -r 9927a619d2b5 web/ldt/ldt_utils/models.py --- a/web/ldt/ldt_utils/models.py Thu Oct 14 12:17:31 2010 +0200 +++ b/web/ldt/ldt_utils/models.py Fri Oct 15 12:36:43 2010 +0200 @@ -23,9 +23,9 @@ class Media(models.Model): external_id = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('media.external_id')) - external_permalink = models.URLField(max_length=1024, null=True, blank=True, verbose_name=_('content.external_permalink')) - external_publication_url = models.URLField(max_length=1024, null=True, blank=True, verbose_name=_('content.external_publication_url')) - external_src_url = models.URLField(max_length=1024, null=True, blank=True, verbose_name=_('content.external_publication_url')) + external_permalink = models.URLField(max_length=1024, verify_exists=False, null=True, blank=True, verbose_name=_('media.external_permalink')) + external_publication_url = models.URLField(max_length=1024, verify_exists=True, null=True, blank=True, verbose_name=_('media.external_publication_url')) + external_src_url = models.URLField(max_length=1024, verify_exists=False, null=True, blank=True, verbose_name=_('media.external_src_url')) creation_date = models.DateTimeField(auto_now_add=True, verbose_name=_('media.creation_date')) media_creation_date = models.DateTimeField(null=True, blank=True, verbose_name=_('media.media_creation_date')) update_date = models.DateTimeField(auto_now=True, verbose_name=_('media.update_date')) @@ -47,7 +47,7 @@ 'mp3': lambda s: "%s:%s" %("mp3",res_src[:-4]), 'mp4': lambda s: "%s:%s" %("mp4",res_src[:-4]), 'f4v': lambda s: "%s:%s" %("mp4",res_src[:-4]), - }.get(extension, lambda s:s)(res_src) + }.get(extension, lambda s:s)(res_src.lower()) return res_src return locals() @@ -82,12 +82,21 @@ content_creation_date = models.DateTimeField(null=True, blank=True, verbose_name=_('content.content_creation_date')) tags = tagging.fields.TagField(max_length=2048, null=True, blank=True ) media_obj = models.ForeignKey('Media', blank=True, null=True ) + + class Meta: + ordering = ["title"] def get_duration(self): if self.duration is None: doc = lxml.etree.parse(self.iri_file_path()) res = doc.xpath("/iri/body/medias/media[@id='video']/video") - self.duration = int(res[0].get(u'dur') or 0) + if len(res) > 0: + try: + self.duration = int(res[0].get(u'dur',0) or 0) + except: + self.duration = 0 + else: + self.duration = 0 self.save() return self.duration @@ -248,6 +257,10 @@ changed_by = models.CharField(_("changed by"), max_length=70) state = models.IntegerField(choices=STATE_CHOICES, default=1) + class Meta: + ordering = ["title"] + + def __unicode__(self): return unicode(self.id) + u": " + unicode(self.ldt_id) @@ -286,6 +299,13 @@ project.contents.add(content) project.save() return project + + def checkAccess(self, user): + if (user and user.is_staff) or self.state == 2: + return True + else: + return False + class Segment(models.Model):