summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms_treatments.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/forms_treatments.py')
-rw-r--r--archaeological_finds/forms_treatments.py162
1 files changed, 105 insertions, 57 deletions
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py
index 936834267..b4cd973c1 100644
--- a/archaeological_finds/forms_treatments.py
+++ b/archaeological_finds/forms_treatments.py
@@ -64,6 +64,38 @@ class TreatmentSelect(DocumentItemSelect):
associated_model=Person),
label=_("Scientific monitoring manager"))
treatment_types = forms.ChoiceField(label=_("Treatment type"), choices=[])
+ label = forms.CharField(label=_("Label"),
+ max_length=200, required=False)
+ reference = forms.CharField(
+ label=_("Reference"), max_length=200, required=False)
+ treatment_status = forms.ChoiceField(label=_("Status"), choices=[])
+ input_status = forms.ChoiceField(label=_("Input status"), choices=[])
+ location = forms.IntegerField(
+ label=_("Location"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse),
+ validators=[valid_id(Warehouse)])
+ scientific_monitoring_manager = forms.IntegerField(
+ label=_("Scientific monitoring manager"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-person'), associated_model=Person),
+ )
+ person = forms.IntegerField(
+ label=_("Responsible of the treatment"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-person'), associated_model=Person),
+ )
+ organization = forms.IntegerField(
+ label=_("Organization"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-organization'),
+ associated_model=Organization),
+ )
+ TYPES = [
+ FieldType('treatment_status', models.TreatmentStatus),
+ FieldType('input_status', models.TreatmentInputStatus),
+ FieldType('treatment_type', models.TreatmentType),
+ ]
def __init__(self, *args, **kwargs):
super(TreatmentSelect, self).__init__(*args, **kwargs)
@@ -88,36 +120,39 @@ class TreatmentFormSelection(CustomForm, forms.Form):
validators=[valid_id(models.Treatment)])
-class TreatmentStateSelect(forms.Select):
+class TreatmentInputStatusSelect(forms.Select):
def render(self, name, value, attrs=None, renderer=None):
- rendered = super(TreatmentStateSelect, self).render(name, value, attrs,
- renderer)
+ rendered = super().render(name, value, attrs, renderer)
executed_id = [
- str(t.pk) for t in models.TreatmentState.objects.filter(
+ str(t.pk) for t in models.TreatmentInputStatus.objects.filter(
executed=True).all()]
if not executed_id:
return rendered
message = '<i class="fa fa-exclamation-triangle" ' \
'aria-hidden="true"></i> &nbsp;'
- message += str(_("Once validated, this state is not reversible."))
+ message += str(_("Once validated, this input status is not reversible."))
+ message += " " + str(
+ _("Depending on the type of treatment, container change and find "
+ "separation/grouping will be carried out on a database basis.")
+ )
rendered += """
- <div id="%(name)s-msg"class="alert alert-warning d-none">%(message)s</div>
- <script type='text/javascript'>
- var %(id)s_exec_list = ['%(exec_list)s'];
- var %(id)s_check = function(){
- var current_val = $("#id_%(name)s").val();
- if (%(id)s_exec_list.indexOf(current_val) != -1){
- $("#%(name)s-msg").removeClass("d-none");
- } else {
- $("#%(name)s-msg").addClass("d-none");
- }
- };
-
- $("#id_%(name)s").change(%(id)s_check);
- setTimeout(function(){ %(id)s_check(); }, 500);
- </script>""" % {"name": name, "id": name.replace("-", "_"),
- "exec_list": "','".join(executed_id),
- "message": message}
+<div id="%(name)s-msg"class="alert alert-warning d-none">%(message)s</div>
+<script type='text/javascript'>
+var %(id)s_exec_list = ['%(exec_list)s'];
+var %(id)s_check = function(){
+ var current_val = $("#id_%(name)s").val();
+ if (%(id)s_exec_list.indexOf(current_val) != -1){
+ $("#%(name)s-msg").removeClass("d-none");
+ } else {
+ $("#%(name)s-msg").addClass("d-none");
+ }
+};
+
+$("#id_%(name)s").change(%(id)s_check);
+setTimeout(function(){ %(id)s_check(); }, 500);
+</script>""" % {"name": name, "id": name.replace("-", "_"),
+ "exec_list": "','".join(executed_id),
+ "message": message}
return rendered
@@ -128,32 +163,51 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
form_admin_name = _("Treatment - 020 - General")
form_slug = "treatment-020-general"
base_models = ['treatment_type']
- associated_models = {'treatment_type': models.TreatmentType,
- 'person': Person,
- 'scientific_monitoring_manager': Person,
- 'location': Warehouse,
- 'organization': Organization,
- 'container': Container,
- 'treatment_state': models.TreatmentState,
- }
+ associated_models = {
+ 'treatment_type': models.TreatmentType,
+ 'person': Person,
+ 'scientific_monitoring_manager': Person,
+ 'location': Warehouse,
+ 'organization': Organization,
+ 'container': Container,
+ 'treatment_status': models.TreatmentStatus,
+ 'input_status': models.TreatmentInputStatus,
+ }
+ HEADERS = {
+ "treatment_type": FormHeader(_("General")),
+ "location": FormHeader(_("Location/responsability")),
+ "start_date": FormHeader(_("Details")),
+ }
file_upload = True
need_user_for_initialization = True
treatment_type = widgets.Select2MultipleField(
label=_("Treatment type"), choices=[],
widget=widgets.CheckboxSelectMultiple)
- treatment_state = forms.ChoiceField(label=_("State"), choices=[],
- widget=TreatmentStateSelect)
year = forms.IntegerField(label=_("Year"),
initial=lambda: datetime.datetime.now().year,
validators=[validators.MinValueValidator(1000),
validators.MaxValueValidator(2100)])
+ label = forms.CharField(label=_("Label"),
+ max_length=200, required=False)
+ reference = forms.CharField(
+ label=_("Reference"), max_length=200, required=False)
+ treatment_status = forms.ChoiceField(label=_("Status"), choices=[])
+ input_status = forms.ChoiceField(label=_("Input status"), choices=[],
+ widget=TreatmentInputStatusSelect)
location = forms.IntegerField(
label=_("Location"),
widget=widgets.JQueryAutoComplete(
reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse,
new=True),
validators=[valid_id(Warehouse)])
+ container = forms.IntegerField(
+ label=_("Destination container (relevant for treatment that change "
+ "location)"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-container'),
+ associated_model=Container, new=True),
+ validators=[valid_id(Container)], required=False)
scientific_monitoring_manager = forms.IntegerField(
label=_("Scientific monitoring manager"),
widget=widgets.JQueryAutoComplete(
@@ -161,7 +215,7 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
new=True),
validators=[valid_id(Person)], required=False)
person = forms.IntegerField(
- label=_("Responsible"),
+ label=_("Responsible of the treatment"),
widget=widgets.JQueryAutoComplete(
reverse_lazy('autocomplete-person'), associated_model=Person,
new=True),
@@ -172,22 +226,11 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
reverse_lazy('autocomplete-organization'),
associated_model=Organization, new=True),
validators=[valid_id(Organization)], required=False)
- label = forms.CharField(label=_("Label"),
- max_length=200, required=False)
- reference = forms.CharField(
- label=_("Reference"), max_length=200, required=False)
# external_id = forms.CharField(
# label=_("External ref."), max_length=200, required=False)
start_date = DateField(label=_("Start date"), required=False,
initial=datetime.date.today)
- end_date = DateField(label=_("Closing date"), required=False)
- container = forms.IntegerField(
- label=_("Destination container (relevant for treatment that change "
- "location)"),
- widget=widgets.JQueryAutoComplete(
- reverse_lazy('autocomplete-container'),
- associated_model=Container, new=True),
- validators=[valid_id(Container)], required=False)
+ end_date = DateField(label=_("End date"), required=False)
goal = forms.CharField(label=_("Goal"),
widget=forms.Textarea, required=False)
description = forms.CharField(label=_("Description"),
@@ -206,7 +249,8 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
widget=forms.HiddenInput)
TYPES = [
- FieldType('treatment_state', models.TreatmentState, True),
+ FieldType('treatment_status', models.TreatmentStatus, True),
+ FieldType('input_status', models.TreatmentInputStatus, True),
FieldType(
'treatment_type', models.TreatmentType, is_multiple=True,
extra_args={'dct': {'upstream_is_many': False,
@@ -238,9 +282,9 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
initial = kwargs.get('initial', {})
if initial.get('executed', False):
- self.fields['treatment_state'].choices = \
- models.TreatmentState.get_types(empty_first=False,
- dct={'executed': True})
+ self.fields['input_status'].choices = \
+ models.TreatmentInputStatus.get_types(
+ empty_first=False, dct={'executed': True})
q = Person.objects.filter(ishtaruser__pk=user.pk)
if q.count():
@@ -288,8 +332,8 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
if tp.change_reference_location
]
- if (change_ref_location or change_current_location
- ) and restore_reference_location:
+ if (change_ref_location or change_current_location) and \
+ restore_reference_location:
if change_ref_location:
raise forms.ValidationError(
str(
@@ -332,7 +376,8 @@ class N1TreatmentForm(BaseTreatmentForm):
form_slug = "treatmentn1-020-general"
TYPES = [
- FieldType('treatment_state', models.TreatmentState, True,
+ FieldType('treatment_status', models.TreatmentStatus, True),
+ FieldType('input_status', models.TreatmentInputStatus, True,
extra_args={'dct': {"executed": True}}),
FieldType(
'treatment_type', models.TreatmentType, is_multiple=True,
@@ -347,7 +392,8 @@ class OneNTreatmentForm(BaseTreatmentForm):
form_slug = "treatment1n-020-general"
TYPES = [
- FieldType('treatment_state', models.TreatmentState, True,
+ FieldType('treatment_status', models.TreatmentStatus, True),
+ FieldType('input_status', models.TreatmentInputStatus, True,
extra_args={'dct': {"executed": True}}),
FieldType(
'treatment_type', models.TreatmentType, is_multiple=True,
@@ -534,7 +580,8 @@ class QAFindTreatmentForm(QABasePackagingForm):
if self.cleaned_data['create_treatment']:
treat_type = models.TreatmentType.objects.get(
pk=self.cleaned_data['treatment_type'])
- treat_state = models.TreatmentState.get_completed_state()
+ treat_input_status = models.TreatmentInputStatus.get_validated_state()
+ treat_status = models.TreatmentStatus.get_completed_state()
t = models.Treatment.objects.create(
container=container,
year=self.cleaned_data['year'],
@@ -543,7 +590,8 @@ class QAFindTreatmentForm(QABasePackagingForm):
person_id=self.cleaned_data['person'],
organization_id=self.cleaned_data['organization'],
history_modifier=user,
- treatment_state=treat_state
+ input_status=treat_input_status,
+ treatment_status=treat_status,
)
t.treatment_types.add(treat_type)
t.save(items=items)
@@ -670,7 +718,7 @@ class TreatmentFileSelect(DocumentItemSelect):
associated_model=Organization),
validators=[valid_id(Organization)])
- end_date = DateField(label=_("Closing date"), required=False)
+ end_date = DateField(label=_("End date"), required=False)
exhibition_start = DateField(label=_("Exhibition start date"))
exhibition_end = DateField(label=_("Exhibition end date"))
@@ -762,7 +810,7 @@ class TreatmentFileForm(CustomForm, ManageOldType):
)
creation_date = DateField(label=_("Start date"), required=False,
initial=lambda: datetime.datetime.now())
- end_date = DateField(label=_("Closing date"), required=False)
+ end_date = DateField(label=_("End date"), required=False)
TYPES = [
FieldType('type', models.TreatmentFileType),