]> git.parisson.com Git - telemeta.git/commitdiff
Corpus and Fonds added in the search module + Submodule locale mis à jour
authorRaouf Benmansour <rbenmansour@iut.univ-paris8.fr>
Thu, 17 Dec 2015 12:39:27 +0000 (13:39 +0100)
committerRaouf Benmansour <rbenmansour@iut.univ-paris8.fr>
Thu, 17 Dec 2015 13:11:34 +0000 (14:11 +0100)
examples/sandbox/settings.py
telemeta/forms/haystack_form.py
telemeta/locale
telemeta/models/collection.py
telemeta/search_indexes.py
telemeta/templates/search/advanceSearch.html
telemeta/templates/search/indexes/telemeta/mediacollection_text.txt
telemeta/templates/search/indexes/telemeta/mediaitem_text.txt
telemeta/templates/search/search.html
telemeta/views/haystack_search.py

index a79eea626c31e100ea6af4723e94cefc4dce201a..a0c3553282da31ac0e412b52c2d0ecfbc2bd9fcc 100644 (file)
@@ -281,7 +281,7 @@ LOGGING = {
 BROKER_URL = 'amqp://guest:guest@rabbitmq//'
 
 CELERY_IMPORTS = ("timeside.server.tasks",)
-CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
+CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
 CELERY_TASK_SERIALIZER = "json"
 CELERY_ACCEPT_CONTENT = ['application/json']
 
@@ -293,6 +293,7 @@ HAYSTACK_CONNECTIONS = {
         'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
         'URL': 'http://search:9200/',
         'INDEX_NAME': 'haystack',
+        'INLUDE_SPELLING': True,
     },
 }
 
index 945509e82be34c5e312c0240a72318432aec2eec..85373e59aea39930655964607ec448fef13f53a7 100644 (file)
@@ -30,8 +30,9 @@
 # The fact that you are presently reading this means that you have had
 # knowledge of the CeCILL license and that you accept its terms.
 #
-# Authors: Angy Fil-Aimé
+# Authors: Angy Fils-Aimé
 #          Killian Mary
+#          Novembre 2015 : Raouf Benmansour
 
 
 from telemeta.models import *
@@ -52,7 +53,12 @@ class HaySearchForm(FacetedSearchForm):
             return sqs
 
         if self.cleaned_data['q']:
-            sqs = sqs.filter(content__contains=self.cleaned_data['q']).facet('item_acces').facet('item_status').facet('digitized').facet('recording_context').facet('physical_format').facet('media_type')
+            #search input of a code, contains at least '_YYYY_'
+            if not re.match('([a-zA-Z]*_?[EI])?_[0-9]{4}_([0-9]{3}_[0-9]{3})?', self.cleaned_data.get('q')):
+                sqs = sqs.filter(content__contains=self.cleaned_data['q']).facet('item_acces').facet('item_status').facet('digitized').facet('recording_context').facet('physical_format').facet('media_type')
+            else:
+                sqs = sqs.filter(code__exact=self.cleaned_data['q']).facet('item_acces').facet('item_status').facet('digitized').facet('recording_context').facet('physical_format').facet('media_type')
+                print(self.cleaned_data['q'])
 
         for facet in self.selected_facets:
             if ":" not in facet:
index 91973b13f9dc9405052727c0c525d342dee15562..030ff8fbada394775abfd9deec770706dd531acc 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 91973b13f9dc9405052727c0c525d342dee15562
+Subproject commit 030ff8fbada394775abfd9deec770706dd531acc
index 2b76bda4a7ddd82c73ee09b58229f51d1dd158b4..600e028b0b4a12f93f340ca74cb76f9f2cb69b49 100644 (file)
@@ -54,7 +54,6 @@ collection_unpublished_code_regex = getattr(settings, 'COLLECTION_UNPUBLISHED_CO
 collection_code_regex = '(?:%s|%s)' % (collection_published_code_regex,
                                        collection_unpublished_code_regex)
 
-
 class MediaCollection(MediaResource):
     "Describe a collection of items"
 
index 47b1814a0572f3f4de642e54a56a3e8ed6418bc1..6162cbfe1e3b70e895ee326fcf72c871965f1a9d 100644 (file)
@@ -12,6 +12,7 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable):
     media_type = indexes.CharField(model_attr='media_type', null='None', faceted=True)
     recording_context = indexes.CharField(model_attr='collection__recording_context', default='', faceted=True)
     physical_format = indexes.CharField(model_attr='collection__physical_format', default='', faceted=True)
+    #content_auto = indexes.EdgeNgramField(model_attr='content')
 
     #advance search
     title = indexes.NgramField(model_attr='title')
@@ -82,6 +83,7 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable):
     media_type = indexes.CharField(model_attr='media_type', null='None', faceted=True)
     recording_context = indexes.CharField(model_attr='recording_context', default='', faceted=True)
     physical_format = indexes.CharField(model_attr='physical_format', default='', faceted=True)
+    #content_auto = indexes.EdgeNgramField(model_attr='content')
 
     #advance search
     title = indexes.NgramField(model_attr='title')
@@ -151,4 +153,65 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable):
         if obj.recorded_to_year != 0:
             return datetime.date(int(obj.recorded_to_year), 01, 01)
         else:
-            return None
\ No newline at end of file
+            return None
+
+
+class MediaCorpusIndex(indexes.SearchIndex, indexes.Indexable):
+
+    text = indexes.CharField(document=True, use_template=True)
+    #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)
+    #media_type = indexes.CharField(model_attr='media_type', null='None', faceted=True)
+    #recording_context = indexes.CharField(model_attr='recording_context', default='', faceted=True)
+    #physical_format = indexes.CharField(model_attr='collection__physical_format', default='', faceted=True)
+    #content_auto = indexes.EdgeNgramField(model_attr='content')
+
+    #advance search
+    title = indexes.NgramField(model_attr='title')
+    code = indexes.NgramField(model_attr='code', default='')
+    #location_principal = indexes.CharField(default='', boost=1.05)
+    #location_relation = indexes.CharField()
+    #ethnic_group = indexes.CharField(default='')
+    #instruments = indexes.NgramField(default='')
+    #collectors = indexes.NgramField(model_attr='collector', default='')
+    #recorded_from_date = indexes.DateField(model_attr='recorded_from_year', null=True)
+    recorded_to_date = indexes.DateField(model_attr='recorded_to_year', null=True)
+    #year_published = indexes.IntegerField(model_attr='year_published', default='')
+
+    def prepare_digitized(self, obj):
+        return obj.has_mediafile
+
+    def get_model(self):
+        return MediaCorpus
+
+
+class MediaFondsIndex(indexes.SearchIndex, indexes.Indexable):
+
+    text = indexes.CharField(document=True, use_template=True)
+    #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)
+    #media_type = indexes.CharField(model_attr='media_type', null='None', faceted=True)
+    #recording_context = indexes.CharField(model_attr='recording_context', default='', faceted=True)
+    #physical_format = indexes.CharField(model_attr='physical_format', default='', faceted=True)
+    #content_auto = indexes.EdgeNgramField(model_attr='content')
+
+    #advance search
+    title = indexes.NgramField(model_attr='title')
+    code = indexes.NgramField(model_attr='code', default='')
+    #location_principal = indexes.CharField(default='', boost=1.05)
+    #location_relation = indexes.CharField()
+    #ethnic_group = indexes.CharField(default='')
+    #instruments = indexes.NgramField(default='')
+    #collectors = indexes.NgramField(model_attr='collector', default='')
+    #recorded_from_date = indexes.DateField(model_attr='recorded_from_year', null=True)
+    #recorded_to_date = indexes.DateField(model_attr='recorded_to_year', null=True)
+    #year_published = indexes.IntegerField(model_attr='year_published', default='')
+
+    def prepare_digitized(self, obj):
+        return obj.has_mediafile
+
+    def get_model(self):
+        return MediaFonds
+
index df3ef20e579f0331de8c71f32c9a97fc91ee3a31..ca1c381a019ce6355ab78ba98201dba92a1fb068 100644 (file)
@@ -22,7 +22,7 @@
                 </div>
                 <div class="fieldWrapper">
                     {{form.collectors.errors}}
-                    {{ form.collectors.label_tag }}</br>
+                    {% trans form.collectors.label_tag %}</br>
                     {{form.collectors}}
                 </div>
                 <div class="fieldWrapper">
             <div class="row" style="margin-left:-15px">
                 <div class="col-md-4">
                     {% ifequal type 'item' %}
-                         <p><b>Items ({{item_count}}) | <a href="{% url "haystack_advance_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a></b></p>
-                     {% else %}
-                        {% ifequal type 'collection'%}
-                            <p><b><a href="{% url "haystack_advance_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}})</b></p>
+                         <p><b>Items ({{item_count}}) | <a href="{% url "haystack_advance_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a> | <a href="{% url "haystack_advance_search_type" "corpus" %}?{{request.GET.urlencode}}">Corpus ({{corpus_count}})</a> | <a href="{% url "haystack_advance_search_type" "fonds" %}?{{request.GET.urlencode}}">Fonds ({{fonds_count}})</a></b></p>
+                    {% else %}
+                        {% ifequal type 'corpus' %}
+                            <p><b><a href="{% url "haystack_advance_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| <a href="{% url "haystack_advance_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a> | Corpus ({{corpus_count}})</a> | <a href="{% url "haystack_advance_search_type" "fonds" %}?{{request.GET.urlencode}}">Fonds ({{fonds_count}})</a></b></p>
+                        {% else %}
+                            {% ifequal type 'fonds' %}
+                                <p><b><a href="{% url "haystack_advance_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| <a href="{% url "haystack_advance_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a> | <a href="{% url "haystack_advance_search_type" "corpus" %}?{{request.GET.urlencode}}">Corpus ({{corpus_count}})</a> | Fonds ({{fonds_count}})</b></p>
+                            {% else %}
+                                {% ifequal type 'collection'%}
+                                    <p><b><a href="{% url "haystack_advance_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}}) | <a href="{% url "haystack_advance_search_type" "corpus" %}?{{request.GET.urlencode}}">Corpus ({{corpus_count}})</a> | <a href="{% url "haystack_advance_search_type" "fonds" %}?{{request.GET.urlencode}}">Fonds ({{fonds_count}})</a></b></p>
+                                {% endifequal %}
+                            {% endifequal %}
                         {% endifequal %}
-                     {% endifequal %}
+                    {% endifequal %}
                  </div>
                  <div class="col-md-4 col-md-offset-4" >
                     <div class="pull-right"">
                     {% ifequal type 'item' %}
                         {% include "search/mediaitem_listhaystack.html" %}
                     {% else %}
-                        {% ifequal type 'collection' %}
-                            {% include "search/mediacollection_listhaystack.html" %}
+                        {% ifequal type 'corpus' %}
+                            {% include "search/mediacorpus_listhaystack.html" %}
+                        {% else %}
+                            {% ifequal type 'fonds' %}
+                                {% include "search/mediafonds_listhaystack.html" %}
+                            {% else %}
+                                {% ifequal type 'collection' %}
+                                    {% include "search/mediacollection_listhaystack.html" %}
+                                {%endifequal%}
+                            {%endifequal%}
                         {%endifequal%}
                     {%endifequal%}
                 </div>
                         {% ifequal type 'item' %}
                             {% include "search/mediaitem_listhaystack.html" %}
                         {% else %}
-                            {% ifequal type 'collection' %}
-                                {% include "search/mediacollection_listhaystack.html" %}
+                            {% ifequal type 'corpus' %}
+                                {% include "search/mediacorpus_listhaystack.html" %}
+                            {% else %}
+                                {% ifequal type 'fonds' %}
+                                    {% include "search/mediafonds_listhaystack.html" %}
+                                {% else %}
+                                    {% ifequal type 'collection' %}
+                                        {% include "search/mediacollection_listhaystack.html" %}
+                                    {%endifequal%}
+                                {%endifequal%}
                             {%endifequal%}
                         {%endifequal%}
                     </div>
index a877fddd0adc62ebdfc7202ee26b2edb11abf2f1..fc4648cbc8846502c12adff5c1d86524ca3bce06 100644 (file)
@@ -5,6 +5,8 @@
 {{ object.recorded_to_year }}
 {{ object.description }}
 {{ object.collector }}
+{{ object.publisher_id }}
+{{ object.publisher_collection_id }}
 {{ object.publisher_serial }}
 {{ object.booklet_author }}
 {{ object.external_references }}
@@ -16,4 +18,7 @@
 {{ object.items_done }}
 {{ object.conservation_site }}
 {{ object.location }}
+{{ object.code }}
+{{ object.countries }}
+{{ object.ethnic_groups }}
 {{ object.body }}
index bdcde2c28d7c9f0ee8413d41e1159a5da65492c7..afe92cfcee6a650bb2fe46c5f7e739cddfa292ce 100644 (file)
@@ -1,12 +1,22 @@
 {{ object.title }}
 {{ object.alt_title }}
+{{ object.collector }}
 {{ object.recorded_from_date }}
 {{ object.recorded_to_date }}
 {{ object.code }}
+{{ object.old_code }}
 {{ object.location }}
 {{ object.location.name }}
 {{ object.comment }}
 {{ object.external_references }}
 {{ object.location_comment }}
 {{ object.cultural_area }}
-{{ object.body }}
+{{ object.language }}
+{{ object.language_iso_id }}
+{{ object.ethnic_group_id }}
+{{ object.context_comment }}
+{{ object.moda_execut }}
+{{ object.vernacular_style_id }}
+{{ object.generic_style_id }}
+#{{ object.instrument_vernacular_names }}
+{{ object.body }}
\ No newline at end of file
index 125a87768cfaf53f6d6056d134a274bfdfe37ccb..ada518284542080d905ef48a39fe2606f386e57e 100644 (file)
                 </div>
                 <div class="col-md-0">&nbsp;</div>
             </div>
-            <div class="row" style="margin-left:-15px">
+            <div class="row" style="margin-left:15px">
                 <div class="col-md-4">
-                    {% ifequal type 'item' %}
-                         <p><b>Items ({{item_count}}) | <a href="{% url "haystack_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a></b></p>
-                     {% else %}
-                        {% ifequal type 'collection'%}
-                            <p><b><a href="{% url "haystack_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}})</b></p>
+                    {% ifequal type 'collection'%}
+                            <p><b><a href="{% url "haystack_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}}) | <a href="{% url "haystack_search_type" "corpus" %}?{{request.GET.urlencode}}">Corpus ({{corpus_count}})</a> | <a href="{% url "haystack_search_type" "fonds" %}?{{request.GET.urlencode}}">Fonds ({{corpus_count}})</a></b></p>
+                    {% else %}
+                        {% ifequal type 'corpus'%}
+                            <p><b><a href="{% url "haystack_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| <a href="{% url "haystack_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a> | Corpus ({{corpus_count}}) | <a href="{% url "haystack_search_type" "fonds" %}?{{request.GET.urlencode}}">Fonds ({{corpus_count}})</a></b></p>
+                        {% else %}
+                            {% ifequal type 'fonds'%}
+                                <p><b><a href="{% url "haystack_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| <a href="{% url "haystack_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a> | <a href="{% url "haystack_search_type" "corpus" %}?{{request.GET.urlencode}}">Corpus ({{corpus_count}})</a> | Fonds ({{corpus_count}})</b></p>
+                            {% else %}
+                                {% ifequal type 'item' %}
+                                    <p><b>Items ({{item_count}}) | <a href="{% url "haystack_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a> | <a href="{% url "haystack_search_type" "corpus" %}?{{request.GET.urlencode}}">Corpus ({{corpus_count}})</a> | <a href="{% url "haystack_search_type" "fonds" %}?{{request.GET.urlencode}}">Fonds ({{corpus_count}})</a></b></p>
+                                {% endifequal %}
+                            {% endifequal %}
                         {% endifequal %}
-                     {% endifequal %}
+                    {% endifequal %}
                  </div>
                  <div class="col-md-4 col-md-offset-4" >
                     <div class="pull-right"">
                     {% else %}
                         {% ifequal type 'collection' %}
                             {% include "search/mediacollection_listhaystack.html" %}
+                        {% else %}
+                            {% ifequal type 'corpus' %}
+                                {% include "search/mediacorpus_listhaystack.html" %}
+                            {% else %}
+                                {% ifequal type 'fonds' %}
+                                    {% include "search/mediafonds_listhaystack.html" %}
+                                {% else %}
+                                    {% ifequal type 'fonds' %}
+                                        {% include "search/mediafonds_listhaystack.html" %}
+                                    {%endifequal%}
+                                {%endifequal%}
+                            {%endifequal%}
                         {%endifequal%}
                     {%endifequal%}
                 </div>
                 <noscript>
                     <div class="fullpage">
-                        {% ifequal type 'item' %}
-                            {% include "search/mediaitem_listhaystack.html" %}
+                    {% ifequal type 'item' %}
+                        {% include "search/mediaitem_listhaystack.html" %}
+                    {% else %}
+                        {% ifequal type 'collection' %}
+                            {% include "search/mediacollection_listhaystack.html" %}
                         {% else %}
-                            {% ifequal type 'collection' %}
-                                {% include "search/mediacollection_listhaystack.html" %}
+                            {% ifequal type 'corpus' %}
+                                {% include "search/mediacorpus_listhaystack.html" %}
+                            {% else %}
+                                {% ifequal type 'fonds' %}
+                                    {% include "search/mediafonds_listhaystack.html" %}
+                                {% else %}
+                                    {% ifequal type 'fonds' %}
+                                        {% include "search/mediafonds_listhaystack.html" %}
+                                    {%endifequal%}
+                                {%endifequal%}
                             {%endifequal%}
                         {%endifequal%}
+                    {%endifequal%}
                     </div>
                 </noscript>
-
             {% endwith %}
+
             {% if user.is_authenticated %}
                 <input type="hidden" name="lastquerypath" value="{{request.get_full_path}}"/>
                 <button style="margin-top:10px" type="submit" id="btn" class="btn btn-default">{% trans "Add to playlist" %}</button>
index 0d7d5b7f6827978a71e429331fc0fd185390c6ca..45bc27d7ec328da9224848ba77224a6914546897 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 
 from haystack.views import *
-#from haystack.query import SearchQuerySet
+from haystack.query import SearchQuerySet
 from telemeta.models import *
 from telemeta.forms.haystack_form import *
 
@@ -13,7 +13,7 @@ class HaystackSearch(FacetedSearchView):
         self.form_class = HaySearchForm
         self.selected_facet = self.selected_facet_list(request.GET.getlist('selected_facets', ['a']))
         if request.GET.get('results_page'):
-            self.results_per_page=int(request.GET.get('results_page'))
+            self.results_per_page = int(request.GET.get('results_page'))
         else:
             self.results_per_page = 20
         return super(HaystackSearch, self).__call__(request)
@@ -22,13 +22,17 @@ class HaystackSearch(FacetedSearchView):
         return super(HaystackSearch, self).get_query()
 
     def get_results(self):
-        if(self.type == 'collection'):
-            return super(HaystackSearch, self).get_results().models(MediaCollection)
-        else:
+        if(self.type == 'item'):
             return super(HaystackSearch, self).get_results().models(MediaItem)
+        elif(self.type == 'corpus'):
+            return super(HaystackSearch, self).get_results().models(MediaCorpus)
+        elif(self.type == 'fonds'):
+            return super(HaystackSearch, self).get_results().models(MediaFonds)
+        else:
+            return super(HaystackSearch, self).get_results().models(MediaCollection)
 
-    def selected_facet_list(self,selected_facets):
-        facet_list=[]
+    def selected_facet_list(self, selected_facets):
+        facet_list = []
         for facet in selected_facets:
             if ":" not in facet:
                 continue
@@ -36,7 +40,7 @@ class HaystackSearch(FacetedSearchView):
             field, value = facet.split(":", 1)
 
             if value and not value in facet_list:
-                if field=='digitized_exact':
+                if field == 'digitized_exact':
                     facet_list.append('Sound')
                 else:
                     facet_list.append(value)
@@ -47,6 +51,8 @@ class HaystackSearch(FacetedSearchView):
         extra = super(HaystackSearch, self).extra_context()
         extra['collection_count'] = super(HaystackSearch, self).get_results().models(MediaCollection).count()
         extra['item_count'] = super(HaystackSearch, self).get_results().models(MediaItem).count()
+        extra['corpus_count'] = super(HaystackSearch, self).get_results().models(MediaCorpus).count()
+        extra['fonds_count'] = super(HaystackSearch, self).get_results().models(MediaFonds).count()
 
         if extra['facets']:
             viewable_total = 0
@@ -68,23 +74,31 @@ class HaystackSearch(FacetedSearchView):
             extra['Radio_count'] = self.get_results().narrow('recording_context:Radio').count()
             extra['Video_count'] = self.get_results().narrow('media_type:Video').count()
             extra['Audio_count'] = self.get_results().narrow('media_type:Audio').count()
-        if self.type == 'collection':
-            extra['type'] = 'collection'
-        else:
+        if self.type == 'item':
             extra['type'] = 'item'
+        elif self.type == 'fonds':
+            extra['type'] = 'fonds'
+        elif self.type == 'corpus':
+            extra['type'] = 'corpus'
+        else:
+            extra['type'] = 'collection'
 
         extra['selected_facets'] = self.selected_facet
         extra['selected_facets_url'] = self.request.GET.getlist('selected_facets')
         extra['results_page'] = self.results_per_page
         return extra
 
+    #def auto_complete(request):
+        #content = SearchQuerySet().autocomplete(content_auto=request.POST.get('seatch_text', ''))
+
+        #return render_to_response('', {'content' : content])
 
 class HaystackAdvanceSearch(SearchView):
 
     def __call__(self, request, type=None):
         self.type = type
         if request.GET.get('results_page'):
-            self.results_per_page=int(request.GET.get('results_page'))
+            self.results_per_page = int(request.GET.get('results_page'))
         else:
             self.results_per_page = 20
         return super(HaystackAdvanceSearch, self).__call__(request)
@@ -97,18 +111,30 @@ class HaystackAdvanceSearch(SearchView):
         return ''
 
     def get_results(self):
-        if(self.type == 'collection'):
+        if(self.type == 'item'):
+            return self.form.search().models(MediaItem)
+        elif(self.type == 'collection'):
             return self.form.search().models(MediaCollection)
+        elif(self.type == 'corpus'):
+            return self.form.search().models(MediaCorpus)
         else:
-            return self.form.search().models(MediaItem)
+            return self.form.search().models(MediaFonds)
 
     def extra_context(self):
         extra = super(HaystackAdvanceSearch, self).extra_context()
+        extra['fonds_count'] = self.form.search().models(MediaFonds).count()
+        extra['corpus_count'] = self.form.search().models(MediaCorpus).count()
         extra['collection_count'] = self.form.search().models(MediaCollection).count()
         extra['item_count'] = self.form.search().models(MediaItem).count()
-        if self.type == 'collection':
+
+        if self.type == 'item':
+            extra['type'] = 'item'
+        elif  self.type == 'collection':
             extra['type'] = 'collection'
+        elif(self.type == 'corpus'):
+            extra['type'] = 'corpus'
         else:
-            extra['type'] = 'item'
+            extra['type'] = 'fonds'
+
         extra['results_page'] = self.results_per_page
         return extra