]> git.parisson.com Git - telemeta.git/commitdiff
update list views and paginations
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 5 Sep 2014 15:27:03 +0000 (17:27 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 5 Sep 2014 15:27:03 +0000 (17:27 +0200)
telemeta/templates/telemeta/inc/collection_list.html
telemeta/templates/telemeta/inc/mediaitem_list.html
telemeta/templates/telemeta/inc/resource_list.html
telemeta/urls.py
telemeta/views/collection.py
telemeta/views/item.py
telemeta/views/resource.py

index 2e90a6f740e3916c2f4bb3cf675af1030eea6e8e..34744f2bfb2f8ef07e59875fee0606360a623254 100644 (file)
@@ -1,13 +1,10 @@
 {% load telemeta_utils %}
 {% load i18n %}
+{% load pagination_tags %}
+
 {% if collections %}
-{% if hits %}
+{% paginate %}
 
-<p class="pagination">
-{% blocktrans %}Collections {{ first_on_page }} to {{ last_on_page }} on {{ hits }}{% endblocktrans %}
-| Pages : {% if pages == 1 %}1{% else %}{% if is_paginated %}{% load paginator %}{% paginator 5 %}{% endif %}{% endif %}
-</p>
-{% endif %}
 <table class="listing">
 <tr>
     <th class="highlight">{% trans "Title" %}</th>
index 0b1a65d60a2eb947f90d0e2f00d35c6effe51901..f3f8ae974303a70812f23281559e524eafa4c75a 100644 (file)
@@ -1,13 +1,9 @@
 {% load telemeta_utils %}
 {% load i18n %}
-{% if items %}
+{% load pagination_tags %}
 
-{% if hits %}
-<p class="pagination">
-{% blocktrans %}Items {{ first_on_page }} to {{ last_on_page }} on {{ hits }}{% endblocktrans %}
-| Pages : {% if pages == 1 %}1{% else %}{% if is_paginated %}{% load paginator %}{% paginator 5 %}{% endif %}{% endif %}
-</p>
-{% endif %}
+{% if items %}
+{% paginate %}
 
 <table class="listing">
 <tr>
index 6506f956042a0cb9f063810787e6138bb516a011..f7271c355f1d4f0949b80b150bafdc63f366d39c 100644 (file)
@@ -1,13 +1,10 @@
 {% load telemeta_utils %}
 {% load i18n %}
+{% load pagination_tags %}
+
 {% if resources %}
-{% if hits %}
+{% paginate %}
 
-<p class="pagination">
-{{ type|capitalize }}{% blocktrans %} from {{ first_on_page }} to {{ last_on_page }} on {{ hits }}{% endblocktrans %}
-| Pages : {% if pages == 1 %}1{% else %}{% if is_paginated %}{% load paginator %}{% paginator 5 %}{% endif %}{% endif %}
-</p>
-{% endif %}
 <table class="listing">
 <tr>
     <th class="highlight">{% trans "Title" %}</th>
index a38d0f9b7c0abe92b4765e71784df7cef4f586cf..eb89786e7623bf14a648a5c08b4cde809d3a1577 100644 (file)
@@ -39,9 +39,10 @@ from django.conf import settings
 from django.views.generic import RedirectView
 from django.views.generic.list import ListView
 from telemeta.models import MediaItem, MediaCollection, MediaItemMarker, MediaCorpus, MediaFonds
-from telemeta.views import HomeView, AdminView, CollectionView, ItemView, \
-                            InstrumentView, InstrumentAliasView, PlaylistView, ProfileView, GeoView, \
-                            LastestRevisionsFeed, ResourceView, UserRevisionsFeed, CollectionPackageView
+from telemeta.views import *
+#from telemeta.views import HomeView, AdminView, CollectionView, ItemView, \
+#                            InstrumentView, InstrumentAliasView, PlaylistView, ProfileView, GeoView, \
+#                            LastestRevisionsFeed, ResourceView, UserRevisionsFeed, CollectionPackageView
 from jsonrpc import jsonrpc_site
 import os.path
 import telemeta.config
@@ -60,30 +61,19 @@ profile_view = ProfileView()
 geo_view = GeoView()
 resource_view = ResourceView()
 
-# query sets for Django generic views
-all_items = { 'queryset': MediaItem.objects.enriched().order_by('code', 'old_code') }
-all_items_unpublished = { 'queryset': MediaItem.objects.filter(collection__code__contains='_I_').order_by('code', 'old_code'), }
-all_items_published = { 'queryset': MediaItem.objects.filter(collection__code__contains='_E_').order_by('code', 'old_code'), }
-all_items_sound = { 'queryset': MediaItem.objects.sound().order_by('code', 'old_code') }
-all_collections = { 'queryset': MediaCollection.objects.enriched(), }
-all_collections_unpublished = { 'queryset': MediaCollection.objects.filter(code__contains='_I_'), }
-all_collections_published = { 'queryset': MediaCollection.objects.filter(code__contains='_E_'), }
-all_collections_sound = { 'queryset': MediaCollection.objects.sound().order_by('code', 'old_code') }
-all_corpus = { 'queryset': MediaCorpus.objects.all().order_by('code') }
-all_fonds = { 'queryset': MediaFonds.objects.all().order_by('code') }
-
 # ID's regular expressions
 export_extensions = "|".join(item_view.list_export_extensions())
 
+
 urlpatterns = patterns('',
     url(r'^$', home_view.home, name="telemeta-home"),
 
     # items
-    url(r'^archives/items/$', ListView.as_view(queryset=MediaItem.objects.enriched().order_by('code', 'old_code')),
-        dict(paginate_by=20, template_name="telemeta/mediaitem_list.html"),
-        name="telemeta-items"),
-    url(r'^archives/items_sound/$', ListView.as_view(),
-        dict(all_items_sound, paginate_by=20, template_name="telemeta/mediaitem_list.html"), name="telemeta-items-sound"),
+    url(r'^archives/items/$', ItemListView.as_view(), name="telemeta-items"),
+    url(r'^archives/items_sound/$', ItemSoundListView.as_view(), name="telemeta-items-sound"),
+    url(r'^archives/items_unpublished/$', ItemUnpublishedListView.as_view(), name="telemeta-items-unpublished"),
+    url(r'^archives/items_published/$', ItemPublishedListView.as_view(), name="telemeta-items-published"),
+
     url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/$', item_view.item_detail,
         name="telemeta-item-detail"),
     url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', item_view.item_detail,
@@ -130,20 +120,13 @@ urlpatterns = patterns('',
     url(r'^archives/markers/(?P<marker_id>[A-Za-z0-9]+)/$', item_view.item_detail, name="telemeta-item-detail-marker"),
     # FIXME: need all paths
     url(r'^items/(?P<path>[A-Za-z0-9._-s/]+)/$', RedirectView.as_view(), {'url': '/archives/items/%(path)s/', 'permanent': False}, name="telemeta-item-redir"),
-    url(r'^archives/items_unpublished/$', ListView.as_view(),
-        dict(all_items_unpublished, paginate_by=20, template_name="telemeta/mediaitem_list.html"), name="telemeta-items-unpublished"),
-    url(r'^archives/items_published/$', ListView.as_view(),
-        dict(all_items_published, paginate_by=20, template_name="telemeta/mediaitem_list.html"), name="telemeta-items-published"),
 
     # collections
-    url(r'^archives/collections/$', ListView.as_view(),
-        dict(all_collections, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections"),
-    url(r'^archives/collections_unpublished/$', ListView.as_view(),
-        dict(all_collections_unpublished, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-unpublished"),
-    url(r'^archives/collections_published/$', ListView.as_view(),
-        dict(all_collections_published, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-published"),
-    url(r'^archives/collections/?page=(?P<page>[0-9]+)$', ListView.as_view(),
-        dict(all_collections, paginate_by=20)),
+    url(r'^archives/collections/$', CollectionListView.as_view(), name="telemeta-collections"),
+    url(r'^archives/collections_unpublished/$', CollectionUnpublishedListView.as_view(), name="telemeta-collections-unpublished"),
+    url(r'^archives/collections_published/$', CollectionPublishedListView.as_view(), name="telemeta-collections-published"),
+    url(r'^archives/collections_sound/$', CollectionSoundListView.as_view(), name="telemeta-collections-sound"),
+
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/$', collection_view.collection_detail,
         dict(template="telemeta/collection_detail.html"), name="telemeta-collection-detail"),
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', collection_view.collection_detail,
@@ -167,22 +150,15 @@ urlpatterns = patterns('',
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', collection_view.collection_delete, name="telemeta-collection-delete"),
     url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/view/$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
     url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', collection_view.related_media_collection_download, name="telemeta-collection-related-download"),
-
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', collection_view.related_media_edit,  dict(template='telemeta/collection_related_edit.html'), name="telemeta-collection-related_edit"),
-    url(r'^archives/collections_sound/$', ListView.as_view(),
-        dict(all_collections_sound, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-sound"),
     # FIXME: need all paths
     url(r'^collections/(?P<path>[A-Za-z0-9._-s/]+)/$', RedirectView.as_view(), {'url': '/archives/collections/%(path)s/', 'permanent': False}, name="telemeta-collection-redir"),
     url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/package/$', CollectionPackageView.as_view(),
         name="telemeta-collection-package"),
-    # RESOURCES
-    # Corpus list
-    url(r'^archives/corpus/$', ListView.as_view(),
-        dict(all_corpus, paginate_by=20, template_name="telemeta/resource_list.html", extra_context={'type':'corpus'}), name="telemeta-corpus"),
 
-    # Fonds list
-    url(r'^archives/fonds/$', ListView.as_view(),
-        dict(all_fonds, paginate_by=20, template_name="telemeta/resource_list.html", extra_context={'type':'fonds'}), name="telemeta-fonds"),
+    # RESOURCES
+    url(r'^archives/corpus/$', CorpusListView.as_view(), name="telemeta-corpus"),
+    url(r'^archives/fonds/$', FondsListView.as_view(), name="telemeta-fonds"),
 
     # Generic resource
     url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/$', resource_view.detail,
index 3fc561d4d07ac52d72ce57a10e30c4c6c0d9cc4d..ce9fe791b2aabe4d4603466855ffe078258ff835 100644 (file)
@@ -223,3 +223,24 @@ class CollectionPackageView(View):
     @method_decorator(login_required)
     def dispatch(self, *args, **kwargs):
         return super(CollectionPackageView, self).dispatch(*args, **kwargs)
+
+
+
+class CollectionListView(ListView):
+    model = MediaCollection
+    template_name = "telemeta/collection_list.html"
+    paginate_by = 20
+    queryset = MediaCollection.objects.enriched()
+
+
+class CollectionUnpublishedListView(CollectionListView):
+    queryset = MediaCollection.objects.filter(code__contains='_I_')
+
+
+class CollectionPublishedListView(CollectionListView):
+    queryset = MediaCollection.objects.filter(code__contains='_E_')
+
+
+class CollectionSoundListView(CollectionListView):
+    queryset = MediaCollection.objects.sound().order_by('code', 'old_code')
+
index e2194961165ebeaebf66454938923ae5a03348e5..f8c586f721d3743b681afa0293a6ffcb234fe87d 100644 (file)
@@ -607,3 +607,22 @@ class ItemView(object):
             formset = FormSet(instance=item)
         return render(request, template, {'item': item, 'formset': formset,})
 
+
+class ItemListView(ListView):
+    model = MediaItem
+    template_name = "telemeta/mediaitem_list.html"
+    paginate_by = 20
+    queryset = MediaItem.objects.enriched().order_by('code', 'old_code')
+
+
+class ItemUnpublishedListView(ItemListView):
+    queryset = MediaItem.objects.filter(collection__code__contains='_I_').order_by('code', 'old_code')
+
+
+class ItemPublishedListView(ItemListView):
+    queryset = MediaItem.objects.filter(collection__code__contains='_E_').order_by('code', 'old_code')
+
+
+class ItemSoundListView(ItemListView):
+    queryset = MediaItem.objects.sound().order_by('code', 'old_code')
+
index debaca44955ef881c2f4321c552399e225950037..ba6c36802bf68fa75142b5f1881fbe13f5ae4b1e 100644 (file)
@@ -194,3 +194,25 @@ class ResourceView(object):
         return render(request, template, {'resource': resource, 'type': type, 'formset': formset,})
 
 
+
+class CorpusListView(ListView):
+    model = MediaCorpus
+    template_name = "telemeta/resource_list.html"
+    paginate_by = 20
+    queryset = MediaCorpus.objects.all().order_by('code')
+
+    def get_context_data(self, **kwargs):
+        context = super(CorpusListView, self).get_context_data(**kwargs)
+        context['type'] = 'corpus'
+        return context
+
+class FondsListView(ListView):
+    model = MediaFonds
+    template_name = "telemeta/resource_list.html"
+    paginate_by = 20
+    queryset = MediaFonds.objects.all().order_by('code')
+
+    def get_context_data(self, **kwargs):
+        context = super(FondsListView, self).get_context_data(**kwargs)
+        context['type'] = 'fonds'
+        return context