]> git.parisson.com Git - telemeta.git/commitdiff
add "Sound" filter to collection list
authoryomguy <yomguy@parisson.com>
Wed, 30 Nov 2011 09:59:11 +0000 (10:59 +0100)
committeryomguy <yomguy@parisson.com>
Wed, 30 Nov 2011 09:59:11 +0000 (10:59 +0100)
telemeta/models/media.py
telemeta/models/query.py
telemeta/templates/telemeta_default/collection_list.html
telemeta/urls.py

index c1a1882ed9bedaf7a10d7b351af32215e0647d31..393ad35207cb6c49facc0bcdb382e8be6472707d 100644 (file)
@@ -249,7 +249,8 @@ class MediaCollection(MediaResource):
     @property
     def public_id(self):
         return self.code
-
+    
+    @property
     def has_mediafile(self):
         "Tell wether this collection has any media files attached to its items"
         items = self.items.all()
@@ -257,7 +258,7 @@ class MediaCollection(MediaResource):
             if item.file:
                 return True
         return False
-
+    
     def __name_cmp(self, obj1, obj2):
         return unaccent_icmp(obj1.name, obj2.name)
 
index df758e0fede613e4fee6dfc2241a8812425736ec..9ef246908f4138fe9e14d649bf2b371ebe126acd 100644 (file)
@@ -322,7 +322,10 @@ class MediaCollectionQuerySet(CoreQuerySet):
     def by_fuzzy_collector(self, pattern):
         return self.filter(self.by_fuzzy_collector_q(pattern))
 
-
+    def sound(self):
+        return self.filter(items__file__contains='/')
+        
+        
 class MediaCollectionManager(CoreManager):
     "Manage collection queries"
 
@@ -362,7 +365,11 @@ class MediaCollectionManager(CoreManager):
     def __name_cmp(obj1, obj2):
         return unaccent_icmp(obj1.name, obj2.name)
 
-
+    def sound(self, *args, **kwargs):
+        return self.get_query_set().sound(*args, **kwargs)
+    sound.__doc__ = MediaCollectionQuerySet.sound.__doc__   
+    
+    
 class LocationQuerySet(CoreQuerySet):
     __flatname_map = None
 
index ac18e1e9a87b0de58822a33daa4416619c3b3ecb..64ffd7ce1d6754013ed2864568c21f0188186d22 100644 (file)
@@ -12,6 +12,7 @@
      <a href="{% url telemeta-collections %}" class="component_icon button icon_filter">{% trans "All" %}</a>
      <a href="{% url telemeta-collections-unpublished %}" class="component_icon button icon_filter">{% trans "Unpublished" %}</a>
      <a href="{% url telemeta-collections-published %}" class="component_icon button icon_filter">{% trans "Published" %}</a>
+     <a href="{% url telemeta-collections-sound %}" class="component_icon button icon_filter">{% trans "Sounds" %}</a>
     {% if user.is_authenticated and perms.telemeta.add_mediacollection %}
       <a href="{% url telemeta-collection-add %}" class="component_icon button icon_add">{% trans "Add" %}</a>
     {% endif %}
index d582a893d34e477ded23b1f452a8cd126e3957a4..bc3a285c9651e99642acf3eb5cf30a769f72bbb2 100644 (file)
@@ -57,12 +57,11 @@ geo_view = GeoView()
 
 # query sets for Django generic views
 all_items = { 'queryset': MediaItem.objects.enriched().order_by('code', 'old_code') }
-all_sound_items = { 'queryset': MediaItem.objects.sound().order_by('code', 'old_code') }
+all_items_sound = { 'queryset': MediaItem.objects.sound().order_by('code', 'old_code') }
 all_collections = { 'queryset': MediaCollection.objects.enriched(), }
-
-# CREM collections
 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') }
 
 # ID's regular expressions
 export_extensions = "|".join(item_view.list_export_extensions())
@@ -77,7 +76,7 @@ urlpatterns = patterns('',
         dict(all_items, paginate_by=20, template_name="telemeta/mediaitem_list.html"),
         name="telemeta-items"),
     url(r'^items_sound/$', 'django.views.generic.list_detail.object_list',
-        dict(all_sound_items, paginate_by=20, template_name="telemeta/mediaitem_list.html"), name="telemeta-items-sound"),
+        dict(all_items_sound, paginate_by=20, template_name="telemeta/mediaitem_list.html"), name="telemeta-items-sound"),
     url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/$', item_view.item_detail, 
         name="telemeta-item-detail"),
     url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', item_view.item_detail, 
@@ -151,7 +150,9 @@ urlpatterns = patterns('',
     url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', collection_view.collection_delete, name="telemeta-collection-delete"),
     url(r'^collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
     url(r'^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'^collections_sound/$', 'django.views.generic.list_detail.object_list',
+        dict(all_collections_sound, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-sound"),
+        
     # search
     url(r'^search/$', general_view.search, name="telemeta-search"),
     url(r'^search/collections/$', general_view.search, {'type': 'collections'},