From ba2c713fd818e209bc5c894e45fe1fc17532a20c Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 28 Apr 2020 13:04:25 +0200 Subject: QA packaging: can associate collection --- archaeological_finds/forms_treatments.py | 18 ++++++++++++++---- .../templates/ishtar/forms/qa_find_treatment.html | 12 +++++++----- archaeological_warehouse/views.py | 6 +++--- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index b80b6c0fe..c62dbcc57 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -399,25 +399,29 @@ class TreatmentDeletionForm(FinalForm): class QAFindTreatmentForm(IshtarForm): container = forms.IntegerField( - label=_(u"Container"), + label=_("Container"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-container'), associated_model=Container, new=True), validators=[valid_id(Container)]) container_to_change = forms.ChoiceField( - label=_(u"Change "), required=True, + label=_("Change "), required=True, choices=( ('current-and-reference', _(u"current and reference containers")), ('reference', _(u"the reference container")), ('current', _(u"the current container")), ) ) + collection = forms.BooleanField( + label=_("Associate to the collection of the container"), required=False, + widget=widgets.CheckboxInput + ) create_treatment = forms.BooleanField( - label=_(u"Create a treatment"), required=False, + label=_("Create a treatment"), required=False, widget=widgets.CheckboxInput ) treatment_type = forms.ChoiceField( - label=_(u"Treatment type"), choices=[], required=False + label=_("Treatment type"), choices=[], required=False ) year = forms.IntegerField( label=_("Year"), initial=lambda: datetime.datetime.now().year, @@ -527,8 +531,14 @@ class QAFindTreatmentForm(IshtarForm): container_attrs.append('container_ref') if container_to_change in ('current', 'current-and-reference'): container_attrs.append('container') + collection = None + if self.cleaned_data.get("collection"): + collection = container.location_id for find in items: changed = False + if collection and find.collection_id != collection: + find.collection_id = collection + changed = True for container_attr in container_attrs: if getattr(find, container_attr) == container: continue diff --git a/archaeological_finds/templates/ishtar/forms/qa_find_treatment.html b/archaeological_finds/templates/ishtar/forms/qa_find_treatment.html index 38db02ff4..c7944f2a0 100644 --- a/archaeological_finds/templates/ishtar/forms/qa_find_treatment.html +++ b/archaeological_finds/templates/ishtar/forms/qa_find_treatment.html @@ -24,23 +24,25 @@ {% with form.container as field %} {% include "blocks/bs_field_snippet.html" %} {% endwith %} - - -
{% with form.container_to_change as field %} {% include "blocks/bs_field_snippet.html" %} {% endwith %}
+
+ {{ form.collection }}  +
{{ form.create_treatment }} 
{% with force_large_col=false %}{% for field in form %} - {% if field.name != 'container_to_change' and field.name != 'container' and field.name != 'create_treatment' %} + {% if field.name != 'container_to_change' and field.name != 'collection' and field.name != 'container' and field.name != 'create_treatment' %} {% include "blocks/bs_field_snippet.html" %} {% endif %} {% endfor %}{% endwith %} diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 4c98b8ac3..354ad4af1 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -104,16 +104,16 @@ def autocomplete_container(request, warehouse_id=None): extra = Q(container_type__label__icontains=q) | \ Q(container_type__reference__icontains=q) | \ Q(reference__icontains=q) | \ - Q(cached_division__icontains=q) | \ + Q(cached_label__icontains=q) | \ Q(location__name=q) | \ Q(location__town=q) query = query & extra containers += list( models.Container.objects.filter(query).exclude( pk__in=[c['id'] for c in containers] - ).values('id', 'cached_division')[:limit]) + ).values('id', 'cached_label')[:limit]) data = json.dumps( - [{'id': container['id'], 'value': container['cached_division']} + [{'id': container['id'], 'value': container['cached_label']} for container in containers]) return HttpResponse(data, content_type='text/plain') -- cgit v1.2.3