return sqs
if self.cleaned_data['q']:
- sqs = sqs.filter(content__contains=self.cleaned_data['q']).facet('item_acces').facet('item_status').facet('digitized')
+ sqs = sqs.filter(content__contains=self.cleaned_data['q']).facet('item_acces').facet('item_status').facet('digitized').facet('recording_context').facet('physical_format')
for facet in self.selected_facets:
if ":" not in facet:
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)
+ recording_context = indexes.CharField(model_attr='collection__recording_context', default='', faceted=True)
+ #original_format = indexes.CharField(model_attr='collection__original_format', default='', faceted=True)
+ physical_format = indexes.CharField(model_attr='collection__physical_format', default='', faceted=True)
#advance search
title = indexes.NgramField(model_attr='title')
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)
+ recording_context = indexes.CharField(model_attr='recording_context', default='' ,faceted=True)
+ #original_format = indexes.CharField(model_attr='original_format', default='', faceted=True)
+ physical_format = indexes.CharField(model_attr='physical_format', default='', faceted=True)
#advance search
title = indexes.NgramField(model_attr='title')
{{ object.title }}
{{ object.alt_title }}
{{ object.creator }}
+{{ object.recorded_from_year }}
+{{ object.recorded_to_year }}
{{ object.description }}
{{ object.collector }}
{{ object.publisher_serial }}
</table>
<div class="btn-group btn-group-justified">
<div class="btn-group" role="group" >
- <button type="button " class="btn btn-default dropdown-toggle" data-toggle="dropdown" style="background-color:#6a0307;color:white;font-weight:bold">
- <span class="glyphicon glyphicon-chevron-down"></span> Other Filters <span class="glyphicon glyphicon-chevron-down"></span>
+ <button type="button " class="btn btn-default dropdown-toggle" data-toggle="dropdown" style="background-color:#6a0307;color:white;font-weight:bold;text-align:left">
+ <span class="glyphicon glyphicon-chevron-down"></span> Other Filters
</button>
<div class="dropdown-menu" role="menu" style="width:100%">
<table class="table" style="font-size:0.9em">
- <tr><td>Alzdqdzl</td><td><a href="{% url "telemeta-search-type" "items" %}" class="">All</a></td></tr>
- <tr><td>Azdqll</td><td><a href="{% url "telemeta-search-type" "items" %}">Sounds</a></td></tr>
- <tr><td>Azdqdll</td><td><a href="{% url "telemeta-search-published" "items" %">Published</a></td></tr>
- <tr><td>Alzfzl</td><td><a href="{% url "telemeta-search-unpublished" "items" %}">Unpublished</a></td></tr>
- <tr><td>Alefqsfl</td><td><a href="{% url "telemeta-search-full" "items" %}">Fu</a></td></tr>
- <tr><td>zfqfef</td><td><a href="{% url "telemeta-search-none" "items" %}">None</a></td></tr>
+ <tr>
+ {% if facets.fields.recording_context %}
+ <td>Recording Context</td>
+ {% for recording_context in facets.fields.recording_context %}
+ {% ifequal recording_context.0 'studio'%}
+ <td><a href="{{ request.get_full_path }}&selected_facets=recording_context_exact:{{ recording_context.0|urlencode }}">{{ recording_context.0 }}</a> <span style="background-color:#6a0307" class="badge">{{ recording_context.1 }}</span></td>
+ {% endifequal %}
+ {% ifequal recording_context.0 'radio'%}
+ <td><a href="{{ request.get_full_path }}&selected_facets=recording_context_exact:{{ recording_context.0|urlencode }}">{{ recording_context.0 }}</a> <span style="background-color:#6a0307" class="badge">{{ recording_context.1 }}</span></td>
+ {% endifequal %}
+ {% ifequal recording_context.0 'terrain'%}
+ <td><a href="{{ request.get_full_path }}&selected_facets=recording_context_exact:{{ recording_context.0|urlencode }}">{{ recording_context.0 }}</a> <span style="background-color:#6a0307" class="badge">{{ recording_context.1 }}</span></td>
+ {% endifequal %}
+ {% endfor %}
+ {% endif %}
+ </tr>
+ <tr>
+ {% if facets.fields.physical_format %}
+ <td>Physical Format</td>
+ {% for physical_format in facets.fields.physical_format %}
+ {% ifequal physical_format.0 'CDR'%}
+ <td><a href="{{ request.get_full_path }}&selected_facets=physical_format_exact:{{ physical_format.0|urlencode }}">{{ physical_format.0 }}</a> <span style="background-color:#6a0307" class="badge">{{ physical_format.1 }}</span></td>
+ {% endifequal %}
+ {% ifequal physical_format.0 'disque'%}
+ <td><a href="{{ request.get_full_path }}&selected_facets=physical_format_exact:{{ physical_format.0|urlencode }}">{{ physical_format.0 }}</a> <span style="background-color:#6a0307" class="badge">{{ physical_format.1 }}</span></td>
+ {% endifequal %}
+ {% ifequal physical_format.0 'cylindre'%}
+ <td><a href="{{ request.get_full_path }}&selected_facets=physical_format_exact:{{ physical_format.0|urlencode }}">{{ physical_format.0 }}</a> <span style="background-color:#6a0307" class="badge">{{ physical_format.1 }}</span></td>
+ {% endifequal %}
+ {% endfor %}
+ {% endif %}
+ </tr>
</table>
</div>
</div>
</div>
</div>
+ {% if selected_facets %}
+ <p><b> » selected facets :
+ {{selected_facets|join:" + "}}
+ {% endif %}</b></p>
{% with object_list as items %}
<div class="fullpage">
{% ifequal type 'item' %}
def __call__(self, request, type=None):
self.type = type
self.form_class = HaySearchForm
+ self.selected_facet=self.selected_facet_list(request.GET.getlist('selected_facets', ['a']))
return super(HaystackSearch, self).__call__(request)
def get_query(self):
else:
return super(HaystackSearch, self).get_results().models(MediaItem)
+ def selected_facet_list(self,selected_facets):
+ facet_list=[]
+ for facet in selected_facets:
+ if ":" not in facet:
+ continue
+
+ field, value = facet.split(":", 1)
+
+ if value and not value in facet_list:
+ if field=='digitized_exact':
+ facet_list.append('Sound')
+ else:
+ facet_list.append(value)
+
+ return facet_list
+
def extra_context(self):
extra = super(HaystackSearch, self).extra_context()
extra['collection_count'] = super(HaystackSearch, self).get_results().models(MediaCollection).count()
extra['viewable_count'] = self.get_results().narrow('item_acces:full OR item_acces:mixed').narrow('digitized:T').count()
extra['digitized_count'] = self.get_results().narrow('digitized:T').count()
+
if self.type == 'collection':
extra['type'] = 'collection'
else:
extra['type'] = 'item'
+
+ extra['selected_facets']=self.selected_facet
return extra