From: Guillaume Pellerin Date: Fri, 5 Sep 2014 15:27:03 +0000 (+0200) Subject: update list views and paginations X-Git-Tag: 1.5.0rc1~27^2~102 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=39b632044b550ebf1e220f8874694d8b52a8b3e1;p=telemeta.git update list views and paginations --- diff --git a/telemeta/templates/telemeta/inc/collection_list.html b/telemeta/templates/telemeta/inc/collection_list.html index 2e90a6f7..34744f2b 100644 --- a/telemeta/templates/telemeta/inc/collection_list.html +++ b/telemeta/templates/telemeta/inc/collection_list.html @@ -1,13 +1,10 @@ {% load telemeta_utils %} {% load i18n %} +{% load pagination_tags %} + {% if collections %} -{% if hits %} +{% paginate %} -

-{% 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 %} -

-{% endif %} diff --git a/telemeta/templates/telemeta/inc/mediaitem_list.html b/telemeta/templates/telemeta/inc/mediaitem_list.html index 0b1a65d6..f3f8ae97 100644 --- a/telemeta/templates/telemeta/inc/mediaitem_list.html +++ b/telemeta/templates/telemeta/inc/mediaitem_list.html @@ -1,13 +1,9 @@ {% load telemeta_utils %} {% load i18n %} -{% if items %} +{% load pagination_tags %} -{% if hits %} -

-{% 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 %} -

-{% endif %} +{% if items %} +{% paginate %}
{% trans "Title" %}
diff --git a/telemeta/templates/telemeta/inc/resource_list.html b/telemeta/templates/telemeta/inc/resource_list.html index 6506f956..f7271c35 100644 --- a/telemeta/templates/telemeta/inc/resource_list.html +++ b/telemeta/templates/telemeta/inc/resource_list.html @@ -1,13 +1,10 @@ {% load telemeta_utils %} {% load i18n %} +{% load pagination_tags %} + {% if resources %} -{% if hits %} +{% paginate %} -

-{{ 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 %} -

-{% endif %}
diff --git a/telemeta/urls.py b/telemeta/urls.py index a38d0f9b..eb89786e 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -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[A-Za-z0-9._-]+)/$', item_view.item_detail, name="telemeta-item-detail"), url(r'^archives/items/(?P[A-Za-z0-9._-]+)/dc/$', item_view.item_detail, @@ -130,20 +120,13 @@ urlpatterns = patterns('', url(r'^archives/markers/(?P[A-Za-z0-9]+)/$', item_view.item_detail, name="telemeta-item-detail-marker"), # FIXME: need all paths url(r'^items/(?P[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[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[A-Za-z0-9._-]+)/$', collection_view.collection_detail, dict(template="telemeta/collection_detail.html"), name="telemeta-collection-detail"), url(r'^archives/collections/(?P[A-Za-z0-9._-]+)/dc/$', collection_view.collection_detail, @@ -167,22 +150,15 @@ urlpatterns = patterns('', url(r'^archives/collections/(?P[A-Za-z0-9._-]+)/delete/$', collection_view.collection_delete, name="telemeta-collection-delete"), url(r'^archives/collections/(?P[A-Za-z0-9._-]+)/related/(?P[A-Za-z0-9._-]+)/view/$', collection_view.related_media_collection_stream, name="telemeta-collection-related"), url(r'^archives/collections/(?P[A-Za-z0-9._-]+)/related/(?P[A-Za-z0-9._-]+)/download/$', collection_view.related_media_collection_download, name="telemeta-collection-related-download"), - url(r'^archives/collections/(?P[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[A-Za-z0-9._-s/]+)/$', RedirectView.as_view(), {'url': '/archives/collections/%(path)s/', 'permanent': False}, name="telemeta-collection-redir"), url(r'^archives/collections/(?P[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[A-Za-z0-9._-]+)/(?P[A-Za-z0-9._-]+)/$', resource_view.detail, diff --git a/telemeta/views/collection.py b/telemeta/views/collection.py index 3fc561d4..ce9fe791 100644 --- a/telemeta/views/collection.py +++ b/telemeta/views/collection.py @@ -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') + diff --git a/telemeta/views/item.py b/telemeta/views/item.py index e2194961..f8c586f7 100644 --- a/telemeta/views/item.py +++ b/telemeta/views/item.py @@ -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') + diff --git a/telemeta/views/resource.py b/telemeta/views/resource.py index debaca44..ba6c3680 100644 --- a/telemeta/views/resource.py +++ b/telemeta/views/resource.py @@ -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
{% trans "Title" %}