]> git.parisson.com Git - telemeta.git/commitdiff
Form Select for ethnic group
authorKaltar5679 <killian.mary@outlook.fr>
Wed, 6 May 2015 13:16:34 +0000 (15:16 +0200)
committerKaltar5679 <killian.mary@outlook.fr>
Wed, 6 May 2015 13:16:34 +0000 (15:16 +0200)
telemeta/forms/haystack_form.py

index 48c9d35787109da5dbb3a8fcc143990e54a049ac..fd5eb4f28e42d1fb5cd96be4b8b600d8a56c2132 100644 (file)
@@ -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