]> git.parisson.com Git - telemeta.git/commitdiff
various fixes related to new models and Django compatibility
authorolivier <>
Thu, 11 Feb 2010 16:44:17 +0000 (16:44 +0000)
committerolivier <>
Thu, 11 Feb 2010 16:44:17 +0000 (16:44 +0000)
telemeta/models/core.py
telemeta/models/media.py
telemeta/templates/telemeta_default/collection_xspf.xml
telemeta/templates/telemeta_default/inc/collection_list.html
telemeta/templates/telemeta_default/mediaitem_detail.html
telemeta/web/base.py

index f558e2da3b39b1a89af7247282b8a8f642277627..fef47ce697cca9643d33092f3b854f7a81a529a1 100644 (file)
@@ -298,6 +298,12 @@ class DateTimeField(models.DateTimeField):
     def __init__(self, *args, **kwargs):
         super(DateTimeField, self).__init__(*args, **normalize_field(kwargs, '0000-00-00 00:00'))
 
+    def get_db_prep_value(self, value):
+        if value is None and not self.null: 
+            return '0000-00-00 00:00'
+
+        return super(DateTimeField, self).get_db_prep_value(value)
+
 class FileField(models.FileField):
     """FileField normalized with normalize_field()"""
 
@@ -316,6 +322,12 @@ class DateField(models.DateField):
     def __init__(self, *args, **kwargs):
         super(DateField, self).__init__(*args, **normalize_field(kwargs, '0000-00-00'))
 
+    def get_db_prep_value(self, value):
+        if value is None and not self.null: 
+            return '0000-00-00'
+
+        return super(DateField, self).get_db_prep_value(value)
+
 class RequiredFieldError(Exception):
     def __init__(self, model, field):
         self.model = model
index 2e28493b5f6cb3984b9f2d8076ecff66e1e1da47..3796b62331e11677e08e0b0631206a2773ed9486 100644 (file)
@@ -223,7 +223,7 @@ class MediaItem(MediaResource):
     location_comment      = CharField(_('location details'))
     ethnic_group          = WeakForeignKey('EthnicGroup', related_name="items", 
                                            verbose_name=_('population / social group'))
-    title                 = CharField(_('title'), required=True)
+    title                 = CharField(_('title'))
     alt_title             = CharField(_('original title / translation'))
     author                = CharField(_('author'))
     vernacular_style      = WeakForeignKey('VernacularStyle', related_name="items", 
@@ -274,9 +274,7 @@ class MediaItem(MediaResource):
         return False
 
     def save(self, force_insert=False, force_update=False):
-        if not self.code:
-            raise RequiredFieldError(self, self._meta.get_field('code'))
-        if not self.is_valid_code(self.code):
+        if self.code and not self.is_valid_code(self.code):
             raise MediaInvalidCodeError("%s is not a valid item code for collection %s" 
                                         % (self.code, self.collection.code))
         super(MediaItem, self).save(force_insert, force_update)
index 09ad58672bf107b6b390ddaa4c7e50a8d5acaf37..317284b72b7cf3e1a791e290920dab5f7ca310dd 100644 (file)
 {% endblock %}
 
 {% block tracklist %}
-{% for item in collection.ordered_items %}
+{% for item in collection.items.all %}
     <track>
       <title>{{ item }}</title>
       <meta rel="type">mp3</meta>
       <location>http://{{ host }}{% url telemeta-item-export item.public_id,"mp3" %}</location>
-      <duration>{{ item.get_duration|mul:1000 }}</duration>
+      <duration>{{ item.computed_duration.as_seconds|mul:1000 }}</duration>
       <info>http://{{ host }}{% url telemeta-item-detail item.public_id %}</info>
     </track>
 {% endfor %}
index 11995907b94ec00408c74bae3874b6b4773efffd..a245cd9bcf0c6315ec07115294d61976f15ced80 100644 (file)
@@ -26,7 +26,7 @@
     <td>
     {% if collection.recorded_from_year %}
         {{ collection.recorded_from_year }}
-        {% if collection.recorded_to_year and collection.recorded_to_year != collection.recorded_from_year %}
+        {% if collection.recorded_to_year and not collection.recorded_to_year|equals:collection.recorded_from_year %}
             - {{ collection.recorded_to_year }}
         {% endif %}
     {% endif %}
index 1fc6cdfb5fcdcc5caa6e212b8c6a0640c762b935..0a884e165f913950f6a4e6e1bde2e254268073a3 100644 (file)
@@ -20,7 +20,7 @@ soundManager.url = '{% url telemeta-swf "./" %}';
 soundManager.flashVersion = 9;\r
 soundManager.debugMode = false;\r
 set_player_image_url('{% url telemeta-item-visualize item.public_id,visualizer_id,"WIDTH","HEIGHT" %}');\r
-load_player({{ item.get_duration }});\r
+load_player({{ item.computed_duration.as_seconds }});\r
 </script>\r
 \r
 {% endblock %}\r
index fbf76bc186ade260f18d9ad51a7a4ece4771d62f..f6ace5e3d460eb0866ac237afa1340a92d79ab81 100644 (file)
@@ -46,6 +46,7 @@ from django.conf import settings
 
 import telemeta
 from telemeta.models import MediaItem, Location, MediaCollection
+from telemeta.models import dublincore
 from telemeta.core import Component, ExtensionPoint
 from telemeta.export import *
 from telemeta.visualization import *
@@ -153,7 +154,7 @@ class WebView(Component):
         item = MediaItem.objects.get(public_id=public_id)
 
         infile = item.file.path
-        metadata = item.to_dublincore().flatten()
+        metadata = dublincore.express_item(item).flatten()
         stream = exporter.process(item.id, infile, metadata)
 
         response = HttpResponse(stream, mimetype = mime_type)