diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-12 19:27:31 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-24 12:06:08 +0200 |
commit | 46fde16870a11cd68a3027dd974b4c8b36643d54 (patch) | |
tree | c3d90559afaff5fbd454ce8baf57ee7fd887b6cd /archaeological_finds/forms_treatments.py | |
parent | ef120a060b2eee4d67df7a065c3dd4b67b93f7ba (diff) | |
download | Ishtar-46fde16870a11cd68a3027dd974b4c8b36643d54.tar.bz2 Ishtar-46fde16870a11cd68a3027dd974b4c8b36643d54.zip |
QA packaging
Diffstat (limited to 'archaeological_finds/forms_treatments.py')
-rw-r--r-- | archaeological_finds/forms_treatments.py | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index 11cfd3173..364c22ed6 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -280,6 +280,89 @@ class TreatmentDeletionForm(FinalForm): confirm_end_msg = _(u"Would you like to delete this treatment?") +class QAFindTreatmentForm(IshtarForm): + container = forms.IntegerField( + label=_(u"Container"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-container'), + associated_model=Container, new=True), + validators=[valid_id(Container)]) + create_treatment = forms.BooleanField( + label=_(u"Create a treatment"), required=False) + year = forms.IntegerField( + label=_("Year"), initial=lambda: datetime.datetime.now().year, + validators=[validators.MinValueValidator(1000), + validators.MaxValueValidator(2100)], required=False) + start_date = forms.DateField(label=_(u"Precise date"), required=False, + widget=DatePicker) + person = forms.IntegerField( + label=_(u"Responsible"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-person'), associated_model=Person, + new=True), + validators=[valid_id(Person)], required=False) + organization = forms.IntegerField( + label=_(u"Organization"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-organization'), + associated_model=Organization, new=True), + validators=[valid_id(Organization)], required=False) + + def __init__(self, *args, **kwargs): + self.user = None + if 'user' in kwargs: + self.user = kwargs.pop('user') + if hasattr(self.user, 'ishtaruser'): + self.user = self.user.ishtaruser + self.items = kwargs.pop('items') + + super(QAFindTreatmentForm, self).__init__(*args, **kwargs) + if not self.user: + return + + q = Person.objects.filter(ishtaruser__pk=self.user.pk) + if q.count(): + person = q.all()[0] + self.fields['person'].initial = person.pk + + def clean(self): + if not self.cleaned_data['create_treatment']: + return self.cleaned_data + + year = self.cleaned_data['year'] + if not year: + if self.cleaned_data['start_date']: + self.cleaned_data['year'] = self.cleaned_data['start_date'].year + else: + raise forms.ValidationError(_(u"At least a year is required.")) + return self.cleaned_data + + def save(self, items, user): + container = Container.objects.get(pk=self.cleaned_data['container']) + if self.cleaned_data['create_treatment']: + packaging, created = models.TreatmentType.objects.get_or_create( + label=u"Conditionnement", + txt_idx='packaging' + ) + t = models.Treatment.objects.create( + container=container, + year=self.cleaned_data['year'], + start_date=self.cleaned_data['start_date'], + location=container.location, + person_id=self.cleaned_data['person'], + organization_id=self.cleaned_data['organization'], + history_modifier=user + ) + t.treatment_types.add(packaging) + t.save(items=items) + return + for find in items: + if find.container == container: + continue + find.container = container + find.save() + + SLICING = (("month", _(u"months")), ('year', _(u"years")),) DATE_SOURCE = (("start", _(u"Start date")), ("end", _(u"Closing date")),) @@ -545,6 +628,7 @@ 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")), |