From: Kaltar5679 Date: Thu, 7 May 2015 14:19:01 +0000 (+0200) Subject: Change year published of haystack advance search to be like Advanced search X-Git-Tag: 1.6a^2~15^2~63^2 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=b7e3da9d0a634fd68401380ccb11b8f2d837faf7;p=telemeta.git Change year published of haystack advance search to be like Advanced search --- diff --git a/examples/sandbox/src/django-haystack b/examples/sandbox/src/django-haystack index 97475f28..bd60745c 160000 --- a/examples/sandbox/src/django-haystack +++ b/examples/sandbox/src/django-haystack @@ -1 +1 @@ -Subproject commit 97475f2813a36e402296d5f2389fe10cd4cd1e0b +Subproject commit bd60745ce82318b1819768c9a31db0579228654d diff --git a/telemeta/forms/haystack_form.py b/telemeta/forms/haystack_form.py index 73d40716..eb5a1d40 100644 --- a/telemeta/forms/haystack_form.py +++ b/telemeta/forms/haystack_form.py @@ -31,6 +31,7 @@ class HaySearchForm(FacetedSearchForm): class HayAdvanceForm(SearchForm): +#begin create field #to replace de basic search form field q = forms.CharField(required=False, label=('Title'), widget=forms.TextInput(attrs={'type': 'search'})) @@ -53,8 +54,35 @@ class HayAdvanceForm(SearchForm): 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': 'YYYY', 'pattern': '[0-9]{4}'})) - year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': 'YYYY', 'pattern': '[0-9]{4}'})) + + #to create a dynamic list of publish year + 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() + if len(list_all_year) >= 2: + min_year = list_all_year[len(list_all_year) - 1] + max_year = list_all_year[len(list_all_year) - 1] + for year in list_all_year: + if year != 0: + if year < min_year: + min_year = year + if year > max_year: + max_year = year + list_all_year = range(min_year, max_year + 1) + list_year = [] + list_year.append((0, '')) + for year in list_all_year: + list_year.append((year, year)) + return list_year + + year_published_from = forms.IntegerField(required=False, label=('Year published from'), widget=forms.Select(choices=list_publish_year())) + year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.Select(choices=list_publish_year())) + #year_published_from = forms.IntegerField(required=False, label=('Year published from'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': 'YYYY', 'pattern': '[0-9]{4}'})) + #year_published_to = forms.IntegerField(required=False, label=('Year published to'), widget=forms.TextInput(attrs={'type': 'search', 'placeholder': 'YYYY', 'pattern': '[0-9]{4}'})) viewable = forms.BooleanField(required=False, label=('Viewable')) item_status = forms.CharField(required=False, label=('Item Status'), widget=forms.RadioSelect(choices=(('1', 'no preference'), ('pub', 'Published'), ('unpub', 'Unpublished'))), initial=1) @@ -92,6 +120,7 @@ class HayAdvanceForm(SearchForm): return type_name physical_format = forms.CharField(required=False, label=('Physical Format'), widget=forms.Select(choices=list_physical_format())) +#end def search(self): sqs = SearchQuerySet().load_all()