diff options
-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 |