From: olivier <> Date: Fri, 7 Mar 2008 14:50:55 +0000 (+0000) Subject: fix advanced search by title; fix empty search X-Git-Tag: 1.1~857 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=ee73fe5c77f0cabe6cd4d1692c0219f1cbddcee3;p=telemeta.git fix advanced search by title; fix empty search --- diff --git a/telemeta/models/query.py b/telemeta/models/query.py index 6dbce365..3ef3c8db 100644 --- a/telemeta/models/query.py +++ b/telemeta/models/query.py @@ -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" diff --git a/telemeta/web/base.py b/telemeta/web/base.py index d6645a02..60faa93a 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -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)),