From: Kaltar5679 Date: Wed, 6 May 2015 13:16:34 +0000 (+0200) Subject: Form Select for ethnic group X-Git-Tag: 1.6a^2~15^2~68^2~1 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=3ad7dccdb025a4491a4d5be82c8bcca1d9d6c878;p=telemeta.git Form Select for ethnic group --- diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index 48c9d357..fd5eb4f2 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -31,26 +31,39 @@ class HaySearchForm(FacetedSearchForm): class HayAdvanceForm(SearchForm): + #to replace de basic search form field q = forms.CharField(required=False, label=('Title'), widget=forms.TextInput(attrs={'type': 'search'})) + code = forms.CharField(required=False, label=('Code'), widget=forms.TextInput(attrs={'type': 'search'})) location = forms.CharField(required=False, label=('Location'), widget=forms.TextInput(attrs={'type': 'search'})) - 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))) + + # to create a dynamic list of etchnic group + def list_ethnic_group(): + type_name = [] + type_name.append(('1', 'no preference')) + list_ethnic_group = EthnicGroup.objects.all() + for ethnic in list_ethnic_group: + type_name.append((ethnic.value, ethnic.value)) + return type_name + + ethnic_group = forms.CharField(required=False, label=('Population / social group'), widget=forms.Select(choices=list_ethnic_group())) + 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}'})) - item_status = forms.CharField(required=False, label=('Media'), widget=forms.RadioSelect(choices=(('1', 'no preference'), ('pub', 'Published'), ('unpub', 'Unpublished'))), initial=1) + viewable = forms.BooleanField(required=False, label=('Viewable')) + item_status = forms.CharField(required=False, label=('Item Status'), widget=forms.RadioSelect(choices=(('1', 'no preference'), ('pub', 'Published'), ('unpub', 'Unpublished'))), initial=1) + def list_media_type(): type_name = [] type_name.append(('1', 'no preference')) + type_name.append(('dig', 'Digitized')) list_media_type = MediaType.objects.all() for mt in list_media_type: type_name.append((mt.value, mt.value)) @@ -75,8 +88,9 @@ class HayAdvanceForm(SearchForm): if self.cleaned_data.get('location'): sqs = sqs.filter(location__contains=self.cleaned_data['location']) - if self.cleaned_data.get('ethnic_group'): - sqs = sqs.filter(ethnic_group__contains=self.cleaned_data['ethnic_group']) + if self.cleaned_data['ethnic_group']: + if self.cleaned_data.get('ethnic_group') != 1: + sqs = sqs.filter(ethnic_group__contains=self.cleaned_data['ethnic_group']) if self.cleaned_data.get('instruments'): sqs = sqs.filter(instruments__contains=self.cleaned_data['instruments']) @@ -108,9 +122,9 @@ class HayAdvanceForm(SearchForm): if self.cleaned_data['media_type']: if self.cleaned_data.get('media_type') == 'dig': sqs = sqs.filter(digitized=True) - if self.cleaned_data.get('media_type') == 'aud': + if self.cleaned_data.get('media_type') == 'Audio': sqs = sqs.filter(digitized=True).filter(media_type='Audio') - if self.cleaned_data.get('media_type') == 'vid': + if self.cleaned_data.get('media_type') == 'Video': sqs = sqs.filter(digitized=True).filter(media_type='Video') return sqs