From 9ea3b22cc9fef7c012e0f5d60d54a5984d58db59 Mon Sep 17 00:00:00 2001 From: fpasquier93 Date: Wed, 24 Jun 2020 16:58:52 +0200 Subject: [PATCH] list of year in haystack_form rework and a constant add in settings --- app/settings.py | 2 + telemeta/forms/haystack_form.py | 37 +++++++++---------- telemeta/models/item.py | 1 + telemeta/pages | 2 +- .../templates/search/search_advanced.html | 2 +- telemeta/views/search.py | 2 + 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/settings.py b/app/settings.py index 5315f6b5..31473269 100644 --- a/app/settings.py +++ b/app/settings.py @@ -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 diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index bc4c5fdc..02e940b8 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -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 diff --git a/telemeta/models/item.py b/telemeta/models/item.py index 0000f385..b3d0bcca 100644 --- a/telemeta/models/item.py +++ b/telemeta/models/item.py @@ -334,6 +334,7 @@ class MediaItem(MediaResource): row.append('') return row + class MediaItemRelated(MediaRelated): "Item related media" diff --git a/telemeta/pages b/telemeta/pages index 16f6409d..6bd28050 160000 --- a/telemeta/pages +++ b/telemeta/pages @@ -1 +1 @@ -Subproject commit 16f6409de93d658779a2cc268db5bf2f49a8bf6e +Subproject commit 6bd28050dc7e96a8a226ea928a8e7b09b130be93 diff --git a/telemeta/templates/search/search_advanced.html b/telemeta/templates/search/search_advanced.html index 22b43b37..b4ea2216 100644 --- a/telemeta/templates/search/search_advanced.html +++ b/telemeta/templates/search/search_advanced.html @@ -18,7 +18,7 @@