From ee73fe5c77f0cabe6cd4d1692c0219f1cbddcee3 Mon Sep 17 00:00:00 2001 From: olivier <> Date: Fri, 7 Mar 2008 14:50:55 +0000 Subject: [PATCH] fix advanced search by title; fix empty search --- telemeta/models/query.py | 7 +++++++ telemeta/web/base.py | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) 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)), -- 2.39.5