From 9bc65fcc9d44f27121e579adec737feca13d30d9 Mon Sep 17 00:00:00 2001 From: Kaltar5679 Date: Mon, 4 May 2015 11:49:58 +0200 Subject: [PATCH] Advance Search : Add digitized search checkbox --- telemeta/forms/haystack_form.py | 8 ++++++-- telemeta/search_indexes.py | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index 108cac0f..16d24bff 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -43,8 +43,9 @@ class HayAdvanceForm(SearchForm): collectors = forms.CharField(required=False, label=('Depositor / contributor'), widget=forms.TextInput(attrs={'type': 'search'})) recorded_from_date = forms.DateField(required=False, label=('Recorded from'), widget=forms.DateInput(attrs={'type': 'search', 'placeholder': 'MM/DD/YYYY'})) recorded_to_date = forms.DateField(required=False, label=('Recorded to'), widget=forms.DateInput(attrs={'type': 'search', 'placeholder': 'MM/DD/YYYY'})) - year_published_from = forms.IntegerField(required=False, label=('Year published from'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': '1234567890'})) - year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': '1234567890'})) + year_published_from = forms.IntegerField(required=False, label=('Year published from'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': 'YYYY', 'pattern': '[0-9]{4}'})) + year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': 'YYYY', 'pattern': '[0-9]{4}'})) + digitized = forms.BooleanField(required=False, label=('Digitized')) def search(self): sqs = SearchQuerySet().load_all() @@ -82,4 +83,7 @@ class HayAdvanceForm(SearchForm): if self.cleaned_data['year_published_to']: sqs = sqs.filter(year_published__lte=self.cleaned_data['year_published_to']) + if self.cleaned_data['digitized']: + sqs = sqs.filter(digitized=True) + return sqs diff --git a/telemeta/search_indexes.py b/telemeta/search_indexes.py index d7659100..f6e1a9a1 100644 --- a/telemeta/search_indexes.py +++ b/telemeta/search_indexes.py @@ -16,8 +16,8 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable): ethnic_group = indexes.NgramField(model_attr='ethnic_group', default='') instruments = indexes.NgramField(default='') collectors = indexes.NgramField(model_attr='collector', default='') - recorded_from_date = indexes.DateField(model_attr='recorded_from_date', default='') - recorded_to_date = indexes.DateField(model_attr='recorded_to_date', default='') + recorded_from_date = indexes.DateField(model_attr='recorded_from_date', null='None') + recorded_to_date = indexes.DateField(model_attr='recorded_to_date', null='None') year_published = indexes.IntegerField(model_attr='collection__year_published', default='') def prepare_digitized(self, obj): @@ -62,8 +62,8 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable): ethnic_group = indexes.NgramField(default='') instruments = indexes.NgramField(default='') collectors = indexes.NgramField(default='') - recorded_from_date = indexes.DateField(model_attr='recorded_from_year', default='') - recorded_to_date = indexes.DateField(model_attr='recorded_to_year', default='') + recorded_from_date = indexes.DateField(model_attr='recorded_from_year', null='None') + recorded_to_date = indexes.DateField(model_attr='recorded_to_year', null='None') year_published = indexes.IntegerField(model_attr='year_published', default='') def prepare_digitized(self, obj): -- 2.39.5