]> git.parisson.com Git - telemeta.git/commitdiff
test for indexing telemeta base with haystack
authorKaltar5679 <killian.mary@outlook.fr>
Tue, 12 May 2015 13:46:02 +0000 (15:46 +0200)
committerKaltar5679 <killian.mary@outlook.fr>
Tue, 12 May 2015 13:46:02 +0000 (15:46 +0200)
telemeta/forms/haystack_form.py
telemeta/search_indexes.py

index d2840a5b9420b166142792cab3e9012b2b21b6a4..46858133bab72dda4cc11ccb26c1213699a3f8bc 100644 (file)
@@ -51,6 +51,57 @@ class HayAdvanceForm(SearchForm):
 
     instruments = forms.CharField(required=False, label=('Instruments'), widget=forms.TextInput(attrs={'type': 'search'}))
     collectors = forms.CharField(required=False, label=('Recordist'), widget=forms.TextInput(attrs={'type': 'search'}))
+
+    #to create a dynamic list of publish year
+    def list_recorded_from_year():
+        list_all_year = []
+        list_collect = MediaCollection.objects.all()
+        for collect in list_collect:
+            if collect.year_published != '0' and not collect.year_published in list_all_year:
+                list_all_year.append(collect.year_published)
+        list_all_year.sort()
+        if len(list_all_year) >= 2:
+            min_year = list_all_year[len(list_all_year) - 1]
+            max_year = list_all_year[len(list_all_year) - 1]
+            for year in list_all_year:
+                if year != 0:
+                    if year < min_year:
+                        min_year = year
+                    if year > max_year:
+                        max_year = year
+            list_all_year = range(min_year, max_year + 1)
+        list_year = []
+        list_year.append((0, ''))
+        for year in list_all_year:
+            list_year.append((year, year))
+        return list_year
+
+    def list_recorded_to_year():
+        list_all_year = []
+        list_collect = MediaCollection.objects.all()
+        for collect in list_collect:
+            if collect.year_published != '0' and not collect.year_published in list_all_year:
+                list_all_year.append(collect.year_published)
+        list_all_year.sort()
+        if len(list_all_year) >= 2:
+            min_year = list_all_year[len(list_all_year) - 1]
+            max_year = list_all_year[len(list_all_year) - 1]
+            for year in list_all_year:
+                if year != 0:
+                    if year < min_year:
+                        min_year = year
+                    if year > max_year:
+                        max_year = year
+            list_all_year = range(min_year, max_year + 1)
+        list_year = []
+        list_year.append((0, ''))
+        for year in list_all_year:
+            list_year.append((year, year))
+        return list_year
+
+    #recorded_from_date = forms.IntegerField(required=False, label=('Recorded from'), widget=forms.Select(choices=list_recorded_year()))
+    #recorded_to_date = forms.IntegerField(required=False, label=('Recorded to'), widget=forms.Select(choices=list_recorded_year()))
+
     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'}))
 
index d700c6c7a31e07c98ee414baeb7fd3213d76f4f5..624f2d852145bb33a9b5d259fda781524cc390c6 100644 (file)
@@ -18,11 +18,11 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable):
     code = indexes.NgramField(model_attr='code', default='')
     location = indexes.NgramField(model_attr='location__name', default='', null='None')
     ethnic_group = indexes.NgramField(model_attr='ethnic_group', default='')
-    #instruments = indexes.NgramField(default='')
-    #collectors = indexes.NgramField(model_attr='collector', default='')
-    #recorded_from_date = indexes.DateField(model_attr='recorded_from_date', null='None')
-    #recorded_to_date = indexes.DateField(model_attr='recorded_to_date', null='None')
-    #year_published = indexes.IntegerField(model_attr='collection__year_published', default='')
+    instruments = indexes.NgramField(default='')
+    collectors = indexes.NgramField(model_attr='collector', default='')
+    recorded_from_date = indexes.DateField(model_attr='recorded_from_date', null='None')
+    recorded_to_date = indexes.DateField(model_attr='recorded_to_date', null='None')
+    year_published = indexes.IntegerField(model_attr='collection__year_published', default='')
 
     def prepare_digitized(self, obj):
         if obj.file.name:
@@ -46,19 +46,19 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable):
             location.append(alias)
         return "%s" % location
 
-    #def prepare_instruments(self, obj):
-        #item = MediaItemPerformance.objects.all().filter(media_item__title__contains=obj.title)
-        #instruments = []
-        #for material in item:
-            #instruments.append(material.instrument)
-            #instruments.append(material.alias)
-        #return "%s" % instruments
+    def prepare_instruments(self, obj):
+        item = MediaItemPerformance.objects.all().filter(media_item__title__contains=obj.title)
+        instruments = []
+        for material in item:
+            instruments.append(material.instrument)
+            instruments.append(material.alias)
+        return "%s" % instruments
 
-    #def prepare_collectors(self, obj):
-        #collectors = []
-        #collectors.append(obj.collection.collector)
-        #collectors.append(obj.collector)
-        #return "%s" % collectors
+    def prepare_collectors(self, obj):
+        collectors = []
+        collectors.append(obj.collection.collector)
+        collectors.append(obj.collector)
+        return "%s" % collectors
 
 
 class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable):
@@ -76,11 +76,11 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable):
     code = indexes.NgramField(model_attr='code', default='')
     location = indexes.NgramField(default='')
     ethnic_group = indexes.NgramField(default='')
-    #instruments = indexes.NgramField(default='')
-    #collectors = indexes.NgramField(model_attr='collector', default='')
-    #recorded_from_date = indexes.DateField(model_attr='recorded_from_year', null='None')
-    #recorded_to_date = indexes.DateField(model_attr='recorded_to_year', null='None')
-    #year_published = indexes.IntegerField(model_attr='year_published', default='')
+    instruments = indexes.NgramField(default='')
+    collectors = indexes.NgramField(model_attr='collector', default='')
+    recorded_from_date = indexes.DateField(model_attr='recorded_from_year', null='None')
+    recorded_to_date = indexes.DateField(model_attr='recorded_to_year', null='None')
+    year_published = indexes.IntegerField(model_attr='year_published', default='')
 
     def prepare_digitized(self, obj):
         return obj.has_mediafile
@@ -104,19 +104,19 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable):
                     collec_location.append(name)
         return "%s" % collec_location
 
-    #def prepare_ethnic_group(self, obj):
-        #return "%s" % obj.ethnic_groups()
+    def prepare_ethnic_group(self, obj):
+        return "%s" % obj.ethnic_groups()
 
-    #def prepare_instruments(self, obj):
-        #instruments = []
-        #items = obj.items.all()
-        #for item in items:
-            #materials = MediaItemPerformance.objects.all().filter(media_item__title__exact=item.title)
-            #for material in materials:
-                #if material.instrument and not material.instrument in instruments:
-                    #instruments.append(material.instrument)
+    def prepare_instruments(self, obj):
+        instruments = []
+        items = obj.items.all()
+        for item in items:
+            materials = MediaItemPerformance.objects.all().filter(media_item__title__exact=item.title)
+            for material in materials:
+                if material.instrument and not material.instrument in instruments:
+                    instruments.append(material.instrument)
 
-                #if material.alias and not material.alias in instruments:
-                    #instruments.append(material.alias)
+                if material.alias and not material.alias in instruments:
+                    instruments.append(material.alias)
 
-        #return "%s" % instruments
+        return "%s" % instruments