]> git.parisson.com Git - telemeta.git/commitdiff
fix advanced search by title; fix empty search
authorolivier <>
Fri, 7 Mar 2008 14:50:55 +0000 (14:50 +0000)
committerolivier <>
Fri, 7 Mar 2008 14:50:55 +0000 (14:50 +0000)
telemeta/models/query.py
telemeta/web/base.py

index 6dbce365292284c60f98e7d1e75941d6559a6a6f..3ef3c8db235f63de35bf6474af94fd1d75583bbe 100644 (file)
@@ -145,6 +145,10 @@ class MediaItemQuerySet(CoreQuerySet):
         return self.filter(Q(dates_enregistr__icontains=pattern) 
             | Q(annee_enreg__icontains=pattern))
 
+    def by_title(self, pattern):
+        return self.filter(Q(_title__icontains=pattern) 
+          | Q(collection__title__icontains=pattern))
+            
 class MediaItemManager(CoreManager):
     "Manage media items queries"
 
@@ -160,6 +164,9 @@ class MediaItemManager(CoreManager):
     def by_recording_date(self, *args, **kwargs):
         return self.get_query_set().by_recording_date(*args, **kwargs)
 
+    def by_title(self, *args, **kwargs):
+        return self.get_query_set().by_title(*args, **kwargs)
+
     def list_ethnic_groups(self):
         "Return a list of all ethnic groups"
         
index d6645a02f02866597478b09ec026d4ad8ea1cd5c..60faa93a7ddc421d86f7b888c6696dab66005434 100644 (file)
@@ -111,8 +111,8 @@ class WebView(Component):
 
     def search(self, request, type = 'items'):
         """Perform a search through collections and items metadata"""
-        collections = MediaCollection.objects
-        items = MediaItem.objects
+        collections = MediaCollection.objects.all()
+        items = MediaItem.objects.all()
         input = request.REQUEST
         criteria = {}
 
@@ -120,6 +120,9 @@ class WebView(Component):
             'pattern': lambda value: ( 
                 collections.quick_search(value), 
                 items.quick_search(value)),
+            'title': lambda value: (
+                collections.filter(title__icontains=value), 
+                items.by_title(value)),
             'country': lambda value: (
                 collections.by_country(value), 
                 items.filter(etat = value)),