-Subproject commit 97475f2813a36e402296d5f2389fe10cd4cd1e0b
+Subproject commit bd60745ce82318b1819768c9a31db0579228654d
#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))
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': '1234567890'}))
+ year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': '1234567890'}))
def search(self):
sqs = SearchQuerySet().load_all()
if self.cleaned_data.get('instruments'):
sqs = sqs.filter(instruments__instruments__contains=self.cleaned_data['instruments'])
+ if self.cleaned_data.get('collectors'):
+ sqs = sqs.filter(collectors__collectors__contains=self.cleaned_data['collectors'])
+
+ if self.cleaned_data['recorded_from_date']:
+ sqs = sqs.filter(recorded_from_date__gte=self.cleaned_data['recorded_from_date'])
+
+ if self.cleaned_data['recorded_to_date']:
+ sqs = sqs.filter(recorded_to_date__lte=self.cleaned_data['recorded_to_date'])
+
+ if self.cleaned_data['year_published_from']:
+ sqs = sqs.filter(year_published__gte=self.cleaned_data['year_published_from'])
+
+ if self.cleaned_data['year_published_to']:
+ sqs = sqs.filter(year_published__lte=self.cleaned_data['year_published_to'])
+
return sqs
location = indexes.NgramField(model_attr='location__name', default='')
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', default='')
+ recorded_to_date = indexes.DateField(model_attr='recorded_to_date', default='')
+ year_published = indexes.IntegerField(model_attr='collection__year_published', default='')
def prepare_digitized(self, obj):
if obj.file.name:
instruments.append(material.alias)
return "%s" % instruments
+ def prepare_collectors(self, obj):
+ collectors = []
+ collectors.append(obj.collection.creator)
+ collectors.append(obj.collection.collector)
+ collectors.append(obj.collector)
+ return "%s" % collectors
+
class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable):
location = indexes.NgramField(default='')
ethnic_group = indexes.NgramField(default='')
instruments = indexes.NgramField(default='')
+ collectors = indexes.NgramField(default='')
+ recorded_from_date = indexes.DateField(model_attr='recorded_from_year', default='')
+ recorded_to_date = indexes.DateField(model_attr='recorded_to_year', default='')
+ year_published = indexes.IntegerField(model_attr='year_published', default='')
def prepare_digitized(self, obj):
return obj.has_mediafile
instruments.append(material.alias)
return "%s" % instruments
+
+ def prepare_collectors(self, obj):
+ collectors = []
+ collectors.append(obj.creator)
+ collectors.append(obj.collector)
+ return "%s" % collectors
{% endifequal %}
{% with object_list as items %}
<div class="fullpage">
- {% include "search/mediaitem_listhaystack.html" %}
+ {% ifequal type 'item' %}
+ {% include "search/mediaitem_listhaystack.html" %}
+ {% else %}
+ {% ifequal type 'collection' %}
+ {% include "search/mediacollection_listhaystack.html" %}
+ {%endifequal%}
+ {%endifequal%}
</div>
{% if page.has_previous or page.has_next %}