From: Kaltar5679 Date: Tue, 12 May 2015 13:46:02 +0000 (+0200) Subject: test for indexing telemeta base with haystack X-Git-Tag: 1.6a^2~15^2~59 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=39674542ca656d5d2b21f7a9276beadb0d0e5b5e;p=telemeta.git test for indexing telemeta base with haystack --- diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index d2840a5b..46858133 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -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'})) diff --git a/telemeta/search_indexes.py b/telemeta/search_indexes.py index d700c6c7..624f2d85 100644 --- a/telemeta/search_indexes.py +++ b/telemeta/search_indexes.py @@ -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