From a3bcf0e960c1e30c09fe9851ae0229407a4079ec Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 15 Mar 2011 14:24:53 +0100 Subject: [PATCH] fix playlists for markers --- telemeta/models/media.py | 8 ++++---- telemeta/templates/telemeta_default/home.html | 14 ++++++++++---- telemeta/urls.py | 4 ++-- telemeta/web/base.py | 13 ++++++++++--- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/telemeta/models/media.py b/telemeta/models/media.py index 6b47d577..45f1787a 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -365,12 +365,12 @@ class PlaylistForm(ModelForm): class PlaylistResource(ModelCore): "Playlist components" - RESOURCE_TYPE_CHOICES = (('item', 'item'), ('collection', 'collection')) + RESOURCE_TYPE_CHOICES = (('item', 'item'), ('collection', 'collection'), ('marker', 'marker')) element_type = 'playlist_resource' public_id = CharField(_('public_id'), required=True) playlist = ForeignKey('Playlist', related_name="resources", verbose_name=_('playlist')) - resource_type = CharField(_('resource type'), choices=RESOURCE_TYPE_CHOICES, required=True) - resource_id = CharField(_('resource'), required=True) + resource_type = CharField(_('resource_type'), choices=RESOURCE_TYPE_CHOICES, required=True) + resource_id = CharField(_('resource_id'), required=True) class Meta(MetaCore): db_table = 'playlist_resources' @@ -395,7 +395,7 @@ class MediaItemMarker(MediaResource): db_table = 'media_markers' def __unicode__(self): - return self.time + ' : ' + self.description + '(' + self.author + ')' + return self.title class Search(ModelCore): "Keywork search" diff --git a/telemeta/templates/telemeta_default/home.html b/telemeta/templates/telemeta_default/home.html index ed51f2af..0f175eae 100644 --- a/telemeta/templates/telemeta_default/home.html +++ b/telemeta/templates/telemeta_default/home.html @@ -23,14 +23,20 @@ {% for resource in playlist.resources %} + {% if resource.type == "item" %} - {{ resource.element }} - {% else %} - {{ resource.element }} + {{ resource.element }} + {% endif %} + {% if resource.type == "collection" %} + {{ resource.element }} {% endif %} + {% if resource.type == "marker" %} + {{ resource.element }} + {% endif %} + {{ resource.type }} - {{ resource.element.code|default:resource.element.old_code }} + {{ resource.element.public_id }} {{ resource.element.apparent_collector }} diff --git a/telemeta/urls.py b/telemeta/urls.py index f2109633..fe02de71 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -64,8 +64,6 @@ urlpatterns = patterns('', name="telemeta-items"), url(r'^items/(?P[A-Za-z0-9._-]+)/$', web_view.item_detail, name="telemeta-item-detail"), - url(r'^items/(?P[A-Za-z0-9._-]+)/marker/(?P[A-Za-z0-9]+)/$', web_view.item_detail, - name="telemeta-item-detail"), url(r'^items/(?P[A-Za-z0-9._-]+)/dc/$', web_view.item_detail, {'template': 'telemeta/mediaitem_detail_dc.html'}, name="telemeta-item-dublincore"), @@ -92,6 +90,8 @@ urlpatterns = patterns('', dict(template='telemeta/mediaitem_copy.html'), name="telemeta-item-copy"), url(r'^item/add/$', web_view.item_add, dict(template='telemeta/mediaitem_add.html'), name="telemeta-item-add"), + url(r'^items/(?P[A-Za-z0-9._-]+)/marker/(?P[A-Za-z0-9]+)/$', web_view.item_detail, + name="telemeta-item-detail-marker"), # collections url(r'^collections/$', 'django.views.generic.list_detail.object_list', diff --git a/telemeta/web/base.py b/telemeta/web/base.py index fd19d9ba..d151e82e 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -785,6 +785,10 @@ class WebView(object): m.name = playlist['name'] m.description = playlist['description'] m.author = request.user + if playlist['is_current'] == 'True': + m.is_current = True + else: + m.is_current = False m.save() else: raise 'Error : Bad playlist dictionnary' @@ -802,11 +806,14 @@ class WebView(object): resources = [] for resource in playlist_resources: if resource.resource_type == 'item': - element = MediaItem.objects.get(public_id=resource.resource_id) + element = MediaItem.objects.get(pk=resource.resource_id) if resource.resource_type == 'collection': - element = MediaCollection.objects.get(public_id=resource.resource_id) + element = MediaCollection.objects.get(pk=resource.resource_id) + if resource.resource_type == 'marker': + element = MediaItemMarker.objects.get(pk=resource.resource_id) resources.append({'element': element, 'type': resource.resource_type}) - playlists.append({'name': playlist.name, 'resources': resources}) + playlists.append({'name': playlist.name, 'description': playlist.description, + 'is_current': playlist.is_current, 'resources': resources}) return playlists @jsonrpc_method('telemeta.update_playlist') -- 2.39.5