summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms_treatments.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-04-12 18:55:58 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-04-12 18:55:58 +0200
commit5f9fe6a2718afacc1126c5d8c6312c887b5f960c (patch)
tree12dae6dbcb1dd5594998582ecfa97c8d752906e5 /archaeological_finds/forms_treatments.py
parentd2e90a63bdd79ae7e43702996967e7c408f0b47d (diff)
downloadIshtar-5f9fe6a2718afacc1126c5d8c6312c887b5f960c.tar.bz2
Ishtar-5f9fe6a2718afacc1126c5d8c6312c887b5f960c.zip
Treament dashboard: add filter form (refs #3381)
Diffstat (limited to 'archaeological_finds/forms_treatments.py')
-rw-r--r--archaeological_finds/forms_treatments.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py
index b3ad8b115..be62fc1d0 100644
--- a/archaeological_finds/forms_treatments.py
+++ b/archaeological_finds/forms_treatments.py
@@ -277,6 +277,54 @@ class TreatmentDeletionForm(FinalForm):
u"lost!")
confirm_end_msg = _(u"Would you like to delete this treatment?")
+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")),)
+
+
+class DashboardForm(forms.Form):
+ slicing = forms.ChoiceField(label=_("Slicing"), choices=SLICING,
+ required=False)
+ date_source = forms.ChoiceField(
+ label=_("Date get from"), choices=DATE_SOURCE, required=False)
+ treatment_type = forms.ChoiceField(label=_("Treatment 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'] = 'treatments'
+ super(DashboardForm, self).__init__(*args, **kwargs)
+ self.fields['treatment_type'].choices = \
+ models.TreatmentType.get_types()
+
+ def get_date_source(self):
+ date_source = 'history'
+ 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('treatment_type'):
+ fltr['treatment_types__pk'] = self.cleaned_data['treatment_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
+
# administrative act treatment