]> git.parisson.com Git - telemeta.git/commitdiff
change digitized checkbox as media_type RadioSelect (digitized, audio, video, no...
authorKaltar5679 <killian.mary@outlook.fr>
Tue, 5 May 2015 11:58:34 +0000 (13:58 +0200)
committerKaltar5679 <killian.mary@outlook.fr>
Tue, 5 May 2015 11:58:34 +0000 (13:58 +0200)
telemeta/forms/haystack_form.py
telemeta/search_indexes.py

index 16d24bffaef11b30eef20db62254d4739c3772e5..cb854122ae7eab1faee1a7e84f0375dff69d3892 100644 (file)
@@ -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
index f6e1a9a1e069a3aa12e9bb68c48815a67c35a2f8..88562e0d83e56994e9849f2670977cf12faeb1a4 100644 (file)
@@ -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')