summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms_treatments.py
diff options
context:
space:
mode:
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
commit46fde16870a11cd68a3027dd974b4c8b36643d54 (patch)
treec3d90559afaff5fbd454ce8baf57ee7fd887b6cd /archaeological_finds/forms_treatments.py
parentef120a060b2eee4d67df7a065c3dd4b67b93f7ba (diff)
downloadIshtar-46fde16870a11cd68a3027dd974b4c8b36643d54.tar.bz2
Ishtar-46fde16870a11cd68a3027dd974b4c8b36643d54.zip
QA packaging
Diffstat (limited to 'archaeological_finds/forms_treatments.py')
-rw-r--r--archaeological_finds/forms_treatments.py84
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")),