web/ldt/ldt_utils/models.py
changeset 94 9927a619d2b5
parent 91 9c83809fda01
parent 88 7f2c2d9adf58
child 113 0c166a3e65b2
--- 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):