From 9ebb3a61ef8c579ef17d6dccbaa0c558a6cebcef Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 15 Feb 2011 11:44:45 +0100 Subject: [PATCH] fix previous and next item finding, update style --- telemeta/htdocs/css/telemeta.css | 2 +- .../telemeta_default/mediaitem_detail.html | 14 +++-- telemeta/urls.py | 6 --- telemeta/web/base.py | 51 ++++++++++++------- 4 files changed, 45 insertions(+), 28 deletions(-) diff --git a/telemeta/htdocs/css/telemeta.css b/telemeta/htdocs/css/telemeta.css index cc0b97d9..2826611a 100644 --- a/telemeta/htdocs/css/telemeta.css +++ b/telemeta/htdocs/css/telemeta.css @@ -13,7 +13,7 @@ body { } a:link, a:visited { - border-bottom:1px dotted #BBB; +/* border-bottom:1px dotted #BBB; */ color:#BB0000; text-decoration:none; } diff --git a/telemeta/templates/telemeta_default/mediaitem_detail.html b/telemeta/templates/telemeta_default/mediaitem_detail.html index 10103308..f3ffbe57 100644 --- a/telemeta/templates/telemeta_default/mediaitem_detail.html +++ b/telemeta/templates/telemeta_default/mediaitem_detail.html @@ -32,12 +32,20 @@ {% if item %} {% block submenu %}
+ + + + + +
Dublin Core - {% if user.is_authenticated %} + + {% if user.is_authenticated and user.is_staff%} EDIT {% endif %} - PREVIOUS - NEXT + PREVIOUS + NEXT +
{% endblock %} diff --git a/telemeta/urls.py b/telemeta/urls.py index 9115aead..0afa28fb 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -87,12 +87,6 @@ urlpatterns = patterns('', url(r'^items/(?P[A-Za-z0-9._-]+)/edit/$', web_view.item_detail_edit, name="telemeta-item-detail-edit"), - url(r'^items/(?P[A-Za-z0-9._-]+)/previous/$', - web_view.item_detail_previous, - name="telemeta-item-detail-previous"), - url(r'^items/(?P[A-Za-z0-9._-]+)/next/$', - web_view.item_detail_next, - name="telemeta-item-detail-next"), # collections url(r'^collections/$', 'django.views.generic.list_detail.object_list', diff --git a/telemeta/web/base.py b/telemeta/web/base.py index ee919e40..56adfd1f 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -142,9 +142,35 @@ class WebView(object): break return self.collection_detail(request, next.public_id) + def item_previous_next(self, item): + # Get previous and next items + pks = [] + items = MediaItem.objects.filter(collection=item.collection) + for it in items: + pks.append(it.pk) + pks.sort() + for pk in pks: + if pk == item.pk: + if pk == pks[0]: + previous = pks[-1] + next = pks[1] + elif pk == pks[-1]: + previous = pks[-2] + next = pks[0] + else: + previous = pks[pks.index(pk)-1] + next = pks[pks.index(pk)+1] + previous = MediaItem.objects.get(pk=previous) + previous = previous.public_id + next = MediaItem.objects.get(pk=next) + next = next.public_id + return previous, next + def item_detail(self, request, public_id, template='telemeta/mediaitem_detail.html'): """Show the details of a given item""" item = MediaItem.objects.get(public_id=public_id) + + # Get TimeSide processors formats = [] for encoder in self.encoders: formats.append({'name': encoder.format(), 'extension': encoder.file_extension()}) @@ -157,17 +183,20 @@ class WebView(object): else: grapher_id = 'waveform' + previous, next = self.item_previous_next(item) analyzers = self.item_analyze(item) return render(request, template, {'item': item, 'export_formats': formats, 'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers, #FIXME analysers - 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True) + 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), + 'previous' : previous, 'next' : next, }) def item_detail_edit(self, request, public_id, template='telemeta/mediaitem_detail_edit.html'): """Show the details of a given item""" item = MediaItem.objects.get(public_id=public_id) + formats = [] for encoder in self.encoders: formats.append({'name': encoder.format(), 'extension': encoder.file_extension()}) @@ -179,7 +208,8 @@ class WebView(object): grapher_id = request.REQUEST['grapher_id'] else: grapher_id = 'waveform' - + + previous, next = self.item_previous_next(item) analyzers = self.item_analyze(item) MediaItemFormSet = modelformset_factory(MediaItem) @@ -194,24 +224,9 @@ class WebView(object): {'item': item, 'export_formats': formats, 'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers, #FIXME analysers 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), "formset": formset, + 'previous' : previous, 'next' : next, }) - def item_detail_previous(self, request, public_id): - item = MediaItem.objects.get(public_id=public_id) - while True: - previous = MediaItem.objects.get(pk=item.pk-1) - if previous: - break - return self.item_detail(request, previous.public_id) - - def item_detail_next(self, request, public_id): - item = MediaItem.objects.get(public_id=public_id) - while True: - next = MediaItem.objects.get(pk=item.pk+1) - if next: - break - return self.item_detail(request, next.public_id) - def item_analyze(self, item): public_id = str(item.public_id) analyze_file = public_id + '.xml' -- 2.39.5