From d7fe7d659621e05ea62dadc89f111de818cdb1e5 Mon Sep 17 00:00:00 2001 From: Kaltar5679 Date: Tue, 5 May 2015 13:58:34 +0200 Subject: [PATCH] change digitized checkbox as media_type RadioSelect (digitized, audio, video, no preference) --- telemeta/forms/haystack_form.py | 14 ++++++++++---- telemeta/search_indexes.py | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index 16d24bff..cb854122 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -38,14 +38,15 @@ class HayAdvanceForm(SearchForm): ethnic_group = forms.CharField(required=False, label=('Population / social group'), widget=forms.TextInput(attrs={'type': 'search'})) #waiting for docker update (django-haystack github version) #list_ethnic = SearchQuerySet().load_all().models(MediaCollection).ethnic_groups().distinct - #ethnic_group = forms.ChoiceField(required=False, label=('Population / social group'), widget=forms.Select, choices = list_ethnic)) + #ethnic_group = forms.ChoiceField(required=False, label=('Population / social group'), widget=forms.Select(choices = list_ethnic))) instruments = forms.CharField(required=False, label=('Instruments'), widget=forms.TextInput(attrs={'type': 'search'})) 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': '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')) + #digitized = forms.BooleanField(required=False, label=('Digitized')) + media_type = forms.CharField(required=False, label=('Media'), widget=forms.RadioSelect(choices=(('dig', 'digitized'), ('aud', 'audio'), ('vid', 'video'), ('nop', 'no preference')))) def search(self): sqs = SearchQuerySet().load_all() @@ -83,7 +84,12 @@ 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) + if self.cleaned_data['media_type']: + if self.cleaned_data.get('media_type') == 'dig': + sqs = sqs = sqs.filter(digitized=True) + if self.cleaned_data.get('media_type') == 'aud': + sqs = sqs = sqs.filter(digitized=True).filter(media_type='Audio') + if self.cleaned_data.get('media_type') == 'vid': + sqs = sqs = sqs.filter(digitized=True).filter(media_type='Video') return sqs diff --git a/telemeta/search_indexes.py b/telemeta/search_indexes.py index f6e1a9a1..88562e0d 100644 --- a/telemeta/search_indexes.py +++ b/telemeta/search_indexes.py @@ -8,6 +8,7 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable): item_acces = indexes.CharField(model_attr='collection__public_access', faceted=True) item_status = indexes.CharField(model_attr='collection__document_status', faceted=True) digitized = indexes.BooleanField(default=False, faceted=True) + media_type = indexes.CharField(model_attr='media_type', null='None', faceted=True) #advance search title = indexes.NgramField(model_attr='title') @@ -54,6 +55,7 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable): item_acces = indexes.CharField(model_attr='public_access', faceted=True) item_status = indexes.CharField(model_attr='document_status', faceted=True) digitized = indexes.BooleanField(default=False, faceted=True) + media_type = indexes.CharField(model_attr='media_type', null='None', faceted=True) #advance search title = indexes.NgramField(model_attr='title') -- 2.39.5