]> git.parisson.com Git - telemeta.git/commitdiff
list of year in haystack_form rework and a constant add in settings
authorfpasquier93 <fpasquier@iut.univ-paris8.fr>
Wed, 24 Jun 2020 14:58:52 +0000 (16:58 +0200)
committerfpasquier93 <fpasquier@iut.univ-paris8.fr>
Wed, 24 Jun 2020 14:58:52 +0000 (16:58 +0200)
app/settings.py
telemeta/forms/haystack_form.py
telemeta/models/item.py
telemeta/pages
telemeta/templates/search/search_advanced.html
telemeta/views/search.py

index 5315f6b5b3c6975bb7d4d35ab3597f59f76066ea..31473269d7de1d1d79b2c929f942b735a0bfc3d8 100644 (file)
@@ -379,3 +379,5 @@ NOTEBOOK_ARGUMENTS = [
 ]
 
 SILENCED_SYSTEM_CHECKS = ['fields.W342',]
+
+FIRST_YEAR = 1857 # Year of patent filing of the 1st sound recorder by Édouard-Léon Scott de Martinville
\ No newline at end of file
index bc4c5fdc1ba63c4f9e63235db86f6f977806c936..02e940b886cb53c96c7c6b8d3f6eee0a30032488 100644 (file)
@@ -26,7 +26,9 @@ from haystack.forms import *
 from haystack.query import SearchQuerySet, SQ
 from datetime import date
 from django.utils.translation import ugettext_lazy as _
+from settings import FIRST_YEAR
 import operator
+
 # from telemeta.views.boolean_search import *
 
 
@@ -87,20 +89,18 @@ class HayAdvanceForm(SearchForm):
     instruments = forms.CharField(required=False, label=(_('instruments')), widget=forms.TextInput(attrs={'class': 'form-control', 'type': 'search'}))
     collectors = forms.CharField(required=False, label=(_('recordist')), widget=forms.TextInput(attrs={'class': 'form-control', 'type': 'search'}))
 
+    # @cached_property
+    
+
     # to create a dynamic list of publishing years
     def list_recorded_year():
-        list_all_year = []
-        list_collect = MediaCollection.objects.all()
-        for collect in list_collect:
-            if collect.recorded_from_year != 0 and not collect.recorded_from_year in list_all_year:
-                list_all_year.append(collect.recorded_from_year)
-            if collect.recorded_to_year != 0 and not collect.recorded_to_year in list_all_year:
-                list_all_year.append(collect.recorded_to_year)
-        list_all_year.sort()
+        last_year = date.today().year
         list_year = []
         list_year.append(('', '----'))
-        for year in list_all_year:
-            list_year.append((str(year), year))
+        year=getattr(settings, 'FIRST_YEAR', '[A-Za-z0-9._-]*')
+        while(year<=last_year):
+            list_year.append((str(year),year))
+            year+=1
         return list_year
 
     recorded_from_date = forms.TypedChoiceField(
@@ -120,16 +120,13 @@ class HayAdvanceForm(SearchForm):
 
     # to create a dynamic list of publishing years
     def list_publish_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()
+       last_year = date.today().year
         list_year = []
-        list_year.append((0, '----'))
-        for year in list_all_year:
-            list_year.append((year, year))
+        list_year.append(('', '----'))
+        year=getattr(settings, 'FIRST_YEAR', '[A-Za-z0-9._-]*')
+        while(year<=last_year):
+            list_year.append((str(year),year))
+            year+=1
         return list_year
 
     year_published_from = forms.TypedChoiceField(
@@ -312,4 +309,4 @@ class HayAdvanceForm(SearchForm):
             if self.cleaned_data.get('physical_format') != '':
                 sqs = sqs.filter(physical_format=self.cleaned_data['physical_format'])
 
-        return sqs
+        return sqs
\ No newline at end of file
index 0000f38532111350c4a5c5ebef2e395a654f80ae..b3d0bcca4ec75044e34acc4b488c0d5e3c34c374 100644 (file)
@@ -334,6 +334,7 @@ class MediaItem(MediaResource):
                 row.append('')
         return row
 
+
 class MediaItemRelated(MediaRelated):
     "Item related media"
 
index 16f6409de93d658779a2cc268db5bf2f49a8bf6e..6bd28050dc7e96a8a226ea928a8e7b09b130be93 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 16f6409de93d658779a2cc268db5bf2f49a8bf6e
+Subproject commit 6bd28050dc7e96a8a226ea928a8e7b09b130be93
index 22b43b37f954ffe457e7f6e9e8c9e71d1e22225f..b4ea22162aa7ad5cb8f39f89ef61ac1ceb23faa0 100644 (file)
@@ -18,7 +18,7 @@
     <script src="{{ STATIC_URL }}tablesorter/jquery.tablesorter.min.js" type="text/javascript"></script>
     <script src="{{ STATIC_URL }}telemeta/js/advanceSearch.js" type="text/javascript"></script>
     <script>
-        $(function(){
+       $(function(){
             $("#results-per-page").selectmenu({
                 icons : {button: "ui-icon-carat-2-n-s"},
                 change : function(){
index 84cc7b0cb06096008b37a92c24eeffaa18042b2e..03d868800fbf189325f79546f812a8827e8124b1 100644 (file)
@@ -25,6 +25,7 @@ from saved_searches.views import SavedSearchView
 import re
 import unicodedata
 import simplejson as json
+import datetime
 from django.http import HttpResponse
 
 
@@ -46,6 +47,7 @@ class HaystackSearch(FacetedSearchView, SavedSearchView):
         return super(HaystackSearch, self).get_query()
 
     def get_results(self):
+
         if (self.type == 'item'):
             return super(HaystackSearch, self).get_results().models(MediaItem)
         elif (self.type == 'corpus'):