From: Kaltar5679 Date: Tue, 5 May 2015 11:58:34 +0000 (+0200) Subject: change digitized checkbox as media_type RadioSelect (digitized, audio, video, no... X-Git-Tag: 1.6a^2~15^2~74^2 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=d7fe7d659621e05ea62dadc89f111de818cdb1e5;p=telemeta.git change digitized checkbox as media_type RadioSelect (digitized, audio, video, no preference) --- 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')