From 5bf08b0b2e3d6d7665656ff120284e6bf444e145 Mon Sep 17 00:00:00 2001 From: olivier <> Date: Thu, 11 Feb 2010 16:44:17 +0000 Subject: [PATCH] various fixes related to new models and Django compatibility --- telemeta/models/core.py | 12 ++++++++++++ telemeta/models/media.py | 6 ++---- .../templates/telemeta_default/collection_xspf.xml | 4 ++-- .../telemeta_default/inc/collection_list.html | 2 +- .../templates/telemeta_default/mediaitem_detail.html | 2 +- telemeta/web/base.py | 3 ++- 6 files changed, 20 insertions(+), 9 deletions(-) diff --git a/telemeta/models/core.py b/telemeta/models/core.py index f558e2da..fef47ce6 100644 --- a/telemeta/models/core.py +++ b/telemeta/models/core.py @@ -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 diff --git a/telemeta/models/media.py b/telemeta/models/media.py index 2e28493b..3796b623 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -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) diff --git a/telemeta/templates/telemeta_default/collection_xspf.xml b/telemeta/templates/telemeta_default/collection_xspf.xml index 09ad5867..317284b7 100644 --- a/telemeta/templates/telemeta_default/collection_xspf.xml +++ b/telemeta/templates/telemeta_default/collection_xspf.xml @@ -10,12 +10,12 @@ {% endblock %} {% block tracklist %} -{% for item in collection.ordered_items %} +{% for item in collection.items.all %} {% endfor %} diff --git a/telemeta/templates/telemeta_default/inc/collection_list.html b/telemeta/templates/telemeta_default/inc/collection_list.html index 11995907..a245cd9b 100644 --- a/telemeta/templates/telemeta_default/inc/collection_list.html +++ b/telemeta/templates/telemeta_default/inc/collection_list.html @@ -26,7 +26,7 @@