From: yomguy Date: Mon, 14 Feb 2011 16:59:31 +0000 (+0100) Subject: begin to implement previous/next X-Git-Tag: 1.1~447 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=cf1bca3bcd696df518101dac8b8e33700a3de30c;p=telemeta.git begin to implement previous/next --- diff --git a/telemeta/templates/telemeta_default/collection_detail.html b/telemeta/templates/telemeta_default/collection_detail.html index daad1e77..5c8e07da 100644 --- a/telemeta/templates/telemeta_default/collection_detail.html +++ b/telemeta/templates/telemeta_default/collection_detail.html @@ -12,8 +12,14 @@ {% block submenu %}
- Dublin Core + + {% if user.is_authenticated %} + EDIT + {% endif %} + PREVIOUS + NEXT +
{% endblock %} diff --git a/telemeta/templates/telemeta_default/mediaitem_detail.html b/telemeta/templates/telemeta_default/mediaitem_detail.html index aad13496..10103308 100644 --- a/telemeta/templates/telemeta_default/mediaitem_detail.html +++ b/telemeta/templates/telemeta_default/mediaitem_detail.html @@ -32,10 +32,12 @@ {% if item %} {% block submenu %}
+ Dublin Core {% if user.is_authenticated %} - + EDIT {% endif %} - Dublin Core + PREVIOUS + NEXT
{% endblock %} diff --git a/telemeta/urls.py b/telemeta/urls.py index 0d9fb499..9115aead 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -87,6 +87,12 @@ 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', @@ -110,7 +116,13 @@ urlpatterns = patterns('', name="telemeta-collection-m3u"), url(r'^collections/(?P[A-Za-z0-9._-]+)/edit/$', web_view.collection_detail_edit, dict(template='telemeta/collection_detail_edit.html'), name="telemeta-collection-detail-edit"), - + url(r'^collections/(?P[A-Za-z0-9._-]+)/previous/$', + web_view.collection_detail_previous, + name="telemeta-collection-detail-previous"), + url(r'^collections/(?P[A-Za-z0-9._-]+)/next/$', + web_view.collection_detail_next, + name="telemeta-collection-detail-next"), + # search url(r'^search/$', web_view.search, name="telemeta-search"), url(r'^search/collections/$', web_view.search, {'type': 'collections'}, diff --git a/telemeta/web/base.py b/telemeta/web/base.py index bf42b7bc..ee919e40 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -126,6 +126,22 @@ class WebView(object): formset = MediaCollectionFormSet(queryset=MediaCollection.objects.filter(code=public_id)) return render(request, template, {'collection': collection, "formset": formset,}) + def collection_detail_previous(self, request, public_id): + collection = MediaCollection.objects.get(public_id=public_id) + while True: + previous = MediaCollection.objects.get(pk=collection.pk-1) + if previous: + break + return self.collection_detail(request, previous.public_id) + + def collection_detail_next(self, request, public_id): + collection = MediaCollection.objects.get(public_id=public_id) + while True: + next = MediaCollection.objects.get(pk=collection.pk+1) + if next: + break + return self.collection_detail(request, next.public_id) + 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) @@ -180,6 +196,22 @@ class WebView(object): 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), "formset": formset, }) + 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'