diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-12 22:38:09 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-12 22:38:09 +0200 |
commit | 167654c4d096870f3fcd5203cf0dc15f21d47cdc (patch) | |
tree | da9b2d12da59dfbd36eee9c43462f87d8f3ecd54 /archaeological_finds | |
parent | 5f9fe6a2718afacc1126c5d8c6312c887b5f960c (diff) | |
download | Ishtar-167654c4d096870f3fcd5203cf0dc15f21d47cdc.tar.bz2 Ishtar-167654c4d096870f3fcd5203cf0dc15f21d47cdc.zip |
Treament file dashboard: add filter form (refs #3381)
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/forms.py | 4 | ||||
-rw-r--r-- | archaeological_finds/forms_treatments.py | 51 |
2 files changed, 49 insertions, 6 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index c0f44423d..ee010094b 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -61,7 +61,8 @@ from archaeological_finds.forms_treatments import TreatmentSelect, \ AdministrativeActTreatmentFileFormSelection, \ AdministrativeActTreatmentFileModifForm, SourceTreatmentFormSelection, \ SourceTreatmentFileFormSelection, TreatmentSourceFormSelection, \ - TreatmentFileSourceFormSelection, DashboardForm as DashboardTreatmentForm + TreatmentFileSourceFormSelection, DashboardForm as DashboardTreatmentForm, \ + DashboardTreatmentFileForm __all__ = [ 'TreatmentSelect', 'TreatmentFormSelection', 'BaseTreatmentForm', @@ -76,6 +77,7 @@ __all__ = [ 'AdministrativeActTreatmentFileModifForm', 'SourceTreatmentFormSelection', 'SourceTreatmentFileFormSelection', 'TreatmentSourceFormSelection', 'TreatmentFileSourceFormSelection', 'DashboardTreatmentForm', + 'DashboardTreatmentFileForm', 'RecordFormSelection', 'FindForm', 'DateForm', 'DatingFormSet', 'FindSelect', 'FindFormSelection', 'FindFormSelectionWarehouseModule', 'MultipleFindFormSelection', 'MultipleFindFormSelectionWarehouseModule', diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index be62fc1d0..58429f4c9 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -279,10 +279,6 @@ class TreatmentDeletionForm(FinalForm): SLICING = (("month", _(u"months")), ('year', _(u"years")),) -PREVENTIVE_RESARCH = (('all', _('All')), - ('preventive', _(u"Preventive")), - ('research', _(u"Research")),) - DATE_SOURCE = (("start", _(u"Start date")), ("end", _(u"Closing date")),) @@ -306,7 +302,7 @@ class DashboardForm(forms.Form): models.TreatmentType.get_types() def get_date_source(self): - date_source = 'history' + date_source = 'start' if hasattr(self, 'cleaned_data') and \ self.cleaned_data.get('date_source'): date_source = self.cleaned_data['date_source'] @@ -532,6 +528,51 @@ class TreatmentFileDeletionForm(FinalForm): confirm_msg = _(u"Are you sure you want to delete this treatment request?") confirm_end_msg = _(u"Would you like to delete this treatment request?") +DATE_SOURCE_FILE = ( + ("creation", _(u"Creation date")), + ("reception", _(u"Reception date")), + ("end", _(u"Closing date")),) + + +class DashboardTreatmentFileForm(forms.Form): + slicing = forms.ChoiceField(label=_("Slicing"), choices=SLICING, + required=False) + date_source = forms.ChoiceField( + label=_("Date get from"), choices=DATE_SOURCE_FILE, required=False) + treatmentfile_type = forms.ChoiceField(label=_("Treatment request type"), + choices=[], required=False) + after = forms.DateField(label=_(u"Date after"), + widget=widgets.JQueryDate, required=False) + before = forms.DateField(label=_(u"Date before"), + widget=widgets.JQueryDate, required=False) + + def __init__(self, *args, **kwargs): + if 'prefix' not in kwargs: + kwargs['prefix'] = 'treatmentfiles' + super(DashboardTreatmentFileForm, self).__init__(*args, **kwargs) + self.fields['treatmentfile_type'].choices = \ + models.TreatmentFileType.get_types() + + def get_date_source(self): + date_source = 'creation' + if hasattr(self, 'cleaned_data') and \ + self.cleaned_data.get('date_source'): + date_source = self.cleaned_data['date_source'] + return date_source + + def get_filter(self): + if not hasattr(self, 'cleaned_data') or not self.cleaned_data: + return {} + fltr = {} + date_source = self.get_date_source() + if self.cleaned_data.get('treatmentfile_type'): + fltr['type__pk'] = self.cleaned_data['treatmentfile_type'] + if self.cleaned_data.get('after'): + fltr[date_source + '_date__gte'] = self.cleaned_data['after'] + if self.cleaned_data.get('before'): + fltr[date_source + '_date__lte'] = self.cleaned_data['before'] + return fltr + class AdministrativeActTreatmentFileSelect(TableSelect): year = forms.IntegerField(label=_("Year")) |