From: Kaltar5679 Date: Tue, 12 May 2015 11:57:05 +0000 (+0200) Subject: Advance serach update (digitized, recordist=collector) X-Git-Tag: 1.6a^2~15^2~61 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=2a45d43c7408efcd5da211cd50bc9d84d6fe6ad0;p=telemeta.git Advance serach update (digitized, recordist=collector) add a default value ('') in attribut code for indexing --- diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index 5131b832..d2840a5b 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -36,7 +36,6 @@ 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'})) # to create a dynamic list of ethnic group @@ -51,7 +50,7 @@ class HayAdvanceForm(SearchForm): 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'})) + collectors = forms.CharField(required=False, label=('Recordist'), 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'})) @@ -83,7 +82,8 @@ class HayAdvanceForm(SearchForm): year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.Select(choices=list_publish_year())) #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}'})) - viewable = forms.BooleanField(required=False, label=('Viewable')) + viewable_choice = (('1', 'no preference'), ('2', 'fichier dans le player + full'), ('3', 'fichier dans le player(j\'ai un compte)')) + viewable = forms.CharField(required=False, label=('Viewable'), widget=forms.RadioSelect(choices=viewable_choice), initial=1) item_status = forms.CharField(required=False, label=('Item Status'), widget=forms.RadioSelect(choices=(('1', 'no preference'), ('pub', 'Published'), ('unpub', 'Unpublished'))), initial=1) @@ -91,7 +91,6 @@ class HayAdvanceForm(SearchForm): 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)) @@ -120,6 +119,8 @@ class HayAdvanceForm(SearchForm): return type_name physical_format = forms.CharField(required=False, label=('Physical Format'), widget=forms.Select(choices=list_physical_format())) + + code = forms.CharField(required=False, label=('Code'), widget=forms.TextInput(attrs={'type': 'search'})) #end def search(self): @@ -160,7 +161,10 @@ class HayAdvanceForm(SearchForm): sqs = sqs.filter(year_published__lte=self.cleaned_data['year_published_to']) if self.cleaned_data['viewable']: - sqs = sqs.filter(Q(item_acces='full') | Q(item_acces='mixed')) + if self.cleaned_data.get('viewable') == '2': + sqs = sqs.filter(digitized=True).filter(Q(item_acces='full') | Q(item_acces='mixed')) + if self.cleaned_data.get('viewable') == '3': + sqs = sqs.filter(digitized=True) if self.cleaned_data['item_status']: if self.cleaned_data.get('item_status') == 'pub': @@ -170,10 +174,7 @@ class HayAdvanceForm(SearchForm): if self.cleaned_data['media_type']: if self.cleaned_data.get('media_type') != '1': - if self.cleaned_data.get('media_type') == 'dig': - sqs = sqs.filter(digitized=True) - else: - sqs = sqs.filter(digitized=True).filter(media_type=self.cleaned_data['media_type']) + sqs = sqs.filter(media_type=self.cleaned_data['media_type']) if self.cleaned_data['recording_context']: if self.cleaned_data.get('recording_context') != '': diff --git a/telemeta/search_indexes.py b/telemeta/search_indexes.py index 7876b112..624f2d85 100644 --- a/telemeta/search_indexes.py +++ b/telemeta/search_indexes.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from haystack import indexes from telemeta.models import * @@ -14,8 +15,8 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable): #advance search title = indexes.NgramField(model_attr='title') - code = indexes.NgramField(model_attr='code') - location = indexes.NgramField(model_attr='location__name', default='') + 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='') @@ -55,7 +56,6 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable): def prepare_collectors(self, obj): collectors = [] - collectors.append(obj.collection.creator) collectors.append(obj.collection.collector) collectors.append(obj.collector) return "%s" % collectors @@ -73,11 +73,11 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable): #advance search title = indexes.NgramField(model_attr='title') - code = indexes.NgramField(model_attr='code') + code = indexes.NgramField(model_attr='code', default='') location = indexes.NgramField(default='') ethnic_group = indexes.NgramField(default='') instruments = indexes.NgramField(default='') - collectors = 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='') @@ -120,9 +120,3 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable): instruments.append(material.alias) return "%s" % instruments - - def prepare_collectors(self, obj): - collectors = [] - collectors.append(obj.creator) - collectors.append(obj.collector) - return "%s" % collectors