diff options
Diffstat (limited to 'archaeological_finds/forms_treatments.py')
-rw-r--r-- | archaeological_finds/forms_treatments.py | 98 |
1 files changed, 94 insertions, 4 deletions
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index b3ad8b115..83fb11028 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -129,12 +129,12 @@ class BaseTreatmentForm(ManageOldType, forms.Form): validators=[valid_id(Container)], required=False) external_id = forms.CharField( label=_(u"External ref."), max_length=200, required=False) - comment = forms.CharField(label=_(u"Comment"), - widget=forms.Textarea, required=False) - description = forms.CharField(label=_(u"Description"), - widget=forms.Textarea, required=False) goal = forms.CharField(label=_(u"Goal"), widget=forms.Textarea, required=False) + description = forms.CharField(label=_(u"Description"), + widget=forms.Textarea, required=False) + comment = forms.CharField(label=_(u"Comment"), + widget=forms.Textarea, required=False) start_date = forms.DateField(label=_(u"Start date"), required=False, widget=widgets.JQueryDate) end_date = forms.DateField(label=_(u"Closing date"), required=False, @@ -239,6 +239,7 @@ class TreatmentModifyForm(BaseTreatmentForm): def __init__(self, *args, **kwargs): super(TreatmentModifyForm, self).__init__(*args, **kwargs) + self.fields.pop('target_is_basket') self.fields.keyOrder.pop(self.fields.keyOrder.index('index')) self.fields.keyOrder.insert( self.fields.keyOrder.index('year') + 1, 'index') @@ -277,6 +278,50 @@ class TreatmentDeletionForm(FinalForm): u"lost!") confirm_end_msg = _(u"Would you like to delete this treatment?") +SLICING = (("month", _(u"months")), ('year', _(u"years")),) + +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 = 'start' + 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 @@ -484,6 +529,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")) |