diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-10 17:53:10 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-24 12:06:08 +0200 | 
| commit | 7a3b1770022051c65ff263a35b0751f1c3c71460 (patch) | |
| tree | 91fdf356c696a28e99244cde054c4ebbee2fe05e /archaeological_finds/forms.py | |
| parent | 1562c7069848608dacc47a60c355e6276206556b (diff) | |
| download | Ishtar-7a3b1770022051c65ff263a35b0751f1c3c71460.tar.bz2 Ishtar-7a3b1770022051c65ff263a35b0751f1c3c71460.zip | |
Find bulk update: manage periods
Diffstat (limited to 'archaeological_finds/forms.py')
| -rw-r--r-- | archaeological_finds/forms.py | 32 | 
1 files changed, 21 insertions, 11 deletions
| diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 75b61cd37..e50172f1c 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -31,7 +31,7 @@ from django.utils.translation import ugettext_lazy as _  import models  from archaeological_context_records.models import DatingType, DatingQuality, \ -    ContextRecord, RelationType as CRRelationType +    ContextRecord, RelationType as CRRelationType, Dating  from archaeological_finds.forms_treatments import TreatmentSelect, \      TreatmentFormSelection, BaseTreatmentForm, TreatmentModifyForm, \      AdministrativeActTreatmentForm, TreatmentFormFileChoice, \ @@ -326,6 +326,7 @@ class QAFindFormMulti(QAForm):          'qa_object_types': models.ObjectType,          'qa_communicabilities': models.CommunicabilityType,          'qa_checked_type': models.CheckedType, +        'qa_period': Period      }      MULTI = True @@ -337,7 +338,8 @@ class QAFindFormMulti(QAForm):          'qa_ue': FormHeader(_(u"Context record")),          'qa_label': FormHeader(_(u"Identification")),          'qa_description': FormHeader(_(u"Description")), -        'qa_checked_type': FormHeader(_(u"Sheet")) +        'qa_checked_type': FormHeader(_(u"Sheet")), +        'qa_period': FormHeader(_(u"Datation")),      }      SINGLE_FIELDS = [ @@ -371,12 +373,6 @@ class QAFindFormMulti(QAForm):      qa_object_types = widgets.Select2MultipleField(          label=_(u"Object types"), required=False,      ) -    qa_decoration = forms.CharField( -        label=_(u"Decoration"), widget=forms.Textarea, -        required=False) -    qa_inscription = forms.CharField( -        label=_(u"Inscription"), widget=forms.Textarea, -        required=False)      qa_manufacturing_place = forms.CharField(          label=_(u"Manufacturing place"), required=False)      qa_communicabilities = widgets.Select2MultipleField( @@ -385,20 +381,24 @@ class QAFindFormMulti(QAForm):      qa_comment = forms.CharField(          label=_(u"Comment"), required=False,          widget=forms.Textarea) -    qa_dating_comment = forms.CharField( -        label=_(u"Comment on dating"), required=False, -        widget=forms.Textarea)      qa_checked_type = forms.ChoiceField(label=_(u"Check"), required=False)      qa_check_date = forms.DateField(          label=_(u"Check date"), widget=DatePicker, required=False) +    qa_period = widgets.Select2MultipleField( +        label=_("Period"), choices=[], required=False) +    qa_dating_comment = forms.CharField( +        label=_(u"Comment on dating"), required=False, +        widget=forms.Textarea) +      TYPES = [          FieldType('qa_material_types', models.MaterialType, is_multiple=True),          FieldType('qa_object_types', models.ObjectType, is_multiple=True),          FieldType('qa_communicabilities', models.CommunicabilityType,                    is_multiple=True),          FieldType('qa_checked_type', models.CheckedType), +        FieldType('qa_period', Period, is_multiple=True),      ]      def _get_qa_ue(self, value): @@ -418,6 +418,16 @@ class QAFindFormMulti(QAForm):          bf.history_modifier = user          bf.save() +    def _set_qa_period(self, item, user): +        periods = self.cleaned_data['qa_period'] +        if not periods: +            return +        for period in periods: +            if Dating.objects.filter(find=item, period__pk=period).count(): +                continue +            d = Dating.objects.create(period_id=period) +            item.datings.add(d) +  class QAFindFormSingle(QAFindFormMulti):      MULTI = False | 
