diff options
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r-- | archaeological_finds/forms.py | 112 |
1 files changed, 101 insertions, 11 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index fbcc32013..a7fc0bc02 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -52,7 +52,7 @@ from bootstrap_datepicker.widgets import DatePicker from ishtar_common import widgets from ishtar_common.forms import CustomForm, CustomFormSearch, FormSet, \ FloatField, reverse_lazy, TableSelect, get_now, FinalForm, \ - ManageOldType, FieldType, IshtarForm, FormHeader + ManageOldType, FieldType, IshtarForm, FormHeader, QAForm from ishtar_common.forms_common import get_town_field from ishtar_common.models import valid_id, valid_ids, get_current_profile, \ SpatialReferenceSystem, Area, OperationType @@ -79,6 +79,7 @@ __all__ = [ 'check_treatment', 'ResultFindForm', 'ResultFindFormSet', 'FindDeletionForm', 'UpstreamFindFormSelection', 'NewFindBasketForm', 'SelectFindBasketForm', 'DeleteFindBasketForm', 'FindBasketAddItemForm', + 'QAFindFormSingle', 'QAFindFormMulti' ] logger = logging.getLogger(__name__) @@ -207,24 +208,24 @@ class FindForm(CustomForm, ManageOldType): dimensions_comment = forms.CharField( label=_(u"Dimensions comment"), required=False, widget=forms.Textarea) - HEADERS['get_first_base_find__topographic_localisation'] = FormHeader( + HEADERS['get_first_base_find__x'] = FormHeader( _(u"Coordinates")) - get_first_base_find__topographic_localisation = forms.CharField( - label=_(u"Point of topographic reference"), - required=False, max_length=120 - ) get_first_base_find__x = forms.FloatField(label=_(u"X"), required=False) - get_first_base_find__y = forms.FloatField(label=_(u"Y"), required=False) - get_first_base_find__z = forms.FloatField(label=_(u"Z"), required=False) - get_first_base_find__spatial_reference_system = \ - forms.ChoiceField(label=_(u"Spatial Reference System"), required=False, - choices=[]) get_first_base_find__estimated_error_x = \ forms.FloatField(label=_(u"Estimated error for X"), required=False) + get_first_base_find__y = forms.FloatField(label=_(u"Y"), required=False) get_first_base_find__estimated_error_y = \ forms.FloatField(label=_(u"Estimated error for Y"), required=False) + get_first_base_find__z = forms.FloatField(label=_(u"Z"), required=False) get_first_base_find__estimated_error_z = \ forms.FloatField(label=_(u"Estimated error for Z"), required=False) + get_first_base_find__spatial_reference_system = \ + forms.ChoiceField(label=_(u"Spatial Reference System"), required=False, + choices=[]) + get_first_base_find__topographic_localisation = forms.CharField( + label=_(u"Point of topographic reference"), + required=False, max_length=120 + ) HEADERS['checked_type'] = FormHeader(_(u"Sheet")) checked_type = forms.ChoiceField(label=_(u"Check"), required=False) @@ -315,6 +316,95 @@ class FindForm(CustomForm, ManageOldType): return self.cleaned_data +QAHeaders = { + 'description': FormHeader(_(u"Description")), + 'checked_type': FormHeader(_(u"Sheet")) +} + + +class QAFindFormMulti(QAForm): + form_admin_name = _(u"Find - Quick action - Modify") + form_slug = "find-quickaction-modify" + base_models = ['get_first_base_find', 'object_types', 'material_types', + 'communicabilities'] + associated_models = { + 'material_types': models.MaterialType, + 'object_types': models.ObjectType, + 'communicabilities': models.CommunicabilityType, + 'checked_type': models.CheckedType, + } + + MULTI = True + REPLACE_FIELDS = [ + 'manufacturing_place', 'checked_type', 'check_date' + ] + + HEADERS = QAHeaders.copy() + + description = forms.CharField(label=_(u"Description"), + widget=forms.Textarea, required=False) + material_types = widgets.Select2MultipleField( + label=_(u"Material types"), required=False + ) + object_types = widgets.Select2MultipleField( + label=_(u"Object types"), required=False, + ) + decoration = forms.CharField( + label=_(u"Decoration"), widget=forms.Textarea, + required=False) + inscription = forms.CharField( + label=_(u"Inscription"), widget=forms.Textarea, + required=False) + manufacturing_place = forms.CharField( + label=_(u"Manufacturing place"), required=False) + communicabilities = widgets.Select2MultipleField( + label=_(u"Communicability"), required=False + ) + comment = forms.CharField( + label=_(u"Comment"), required=False, + widget=forms.Textarea) + dating_comment = forms.CharField( + label=_(u"Comment on dating"), required=False, + widget=forms.Textarea) + + checked_type = forms.ChoiceField(label=_(u"Check"), required=False) + check_date = forms.DateField( + initial=get_now, label=_(u"Check date"), widget=DatePicker) + + TYPES = [ + FieldType('material_types', models.MaterialType, is_multiple=True), + FieldType('object_types', models.ObjectType, is_multiple=True), + FieldType('communicabilities', models.CommunicabilityType, + is_multiple=True), + FieldType('checked_type', models.CheckedType, is_multiple=True), + ] + + +class QAFindFormSingle(QAFindFormMulti): + form_admin_name = _(u"Find - Quick action - Modify single") + form_slug = "find-quickaction-modifysingle" + HEADERS = QAHeaders.copy() + HEADERS['label'] = FormHeader(_(u"Identification")) + + label = forms.CharField( + label=_(u"Free ID"), + validators=[validators.MaxLengthValidator(60)]) + denomination = forms.CharField(label=_(u"Denomination"), required=False) + previous_id = forms.CharField(label=_("Previous ID"), required=False) + get_first_base_find__excavation_id = forms.CharField( + label=_(u"Excavation ID"), required=False) + museum_id = forms.CharField(label=_(u"Museum ID"), required=False) + seal_number = forms.CharField(label=_(u"Seal number"), required=False) + mark = forms.CharField(label=_(u"Mark"), required=False) + + def __init__(self, *args, **kwargs): + super(QAFindFormSingle, self).__init__(*args, **kwargs) + if not self.items or \ + not self.items[0].get_first_base_find( + ).context_record.operation.operation_type.judiciary: + self.fields.pop('seal_number') + + class PreservationForm(CustomForm, ManageOldType): form_label = _("Preservation") form_admin_name = _(u"Find - 030 - Preservation") |