diff options
Diffstat (limited to 'archaeological_finds/forms.py')
| -rw-r--r-- | archaeological_finds/forms.py | 41 | 
1 files changed, 27 insertions, 14 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 5fcf57a27..90805e656 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -56,7 +56,7 @@ from ishtar_common import widgets  from ishtar_common.forms import CustomForm, CustomFormSearch, FormSet, \      FloatField, reverse_lazy, TableSelect, get_now, FinalForm, \      ManageOldType, FieldType, IshtarForm, FormHeader, QAForm, HistorySelect, \ -    MultiSearchForm, LockForm +    MultiSearchForm, LockForm, DocumentItemSelect  from ishtar_common.forms_common import get_town_field  from ishtar_common.models import valid_id, valid_ids, get_current_profile, \      SpatialReferenceSystem, Area, OperationType, IshtarUser @@ -524,8 +524,8 @@ class ResultingFindsForm(CustomForm, ManageOldType):          label=_(u"Prefix label for resulting finds"),          validators=[validators.MaxLengthValidator(200)],          help_text=_( -            u'E.g.: with a prefix "item-", each resulting item will be named ' -            u'"item-1", "item-2", "item-3"') +            'E.g.: with a prefix "item-", each resulting item will be named ' +            '"item-1", "item-2", "item-3"')      )      resultings_start_number = forms.IntegerField(          label=_(u"Numbering starting from"), initial=1, min_value=0 @@ -569,12 +569,14 @@ class QAFindFormMulti(QAForm):          'qa_checked_type': models.CheckedType,          'qa_period': Period,          "qa_conservatory_state": models.ConservatoryState, +        "qa_treatment_emergency": models.TreatmentEmergencyType,      }      MULTI = True      REPLACE_FIELDS = [          'qa_denomination', 'qa_ue', 'qa_manufacturing_place', 'qa_checked_type', -        'qa_check_date', 'qa_conservatory_state' +        'qa_check_date', 'qa_conservatory_state', 'qa_treatment_emergency', +        'qa_appraisal_date',      ]      HEADERS = { @@ -629,8 +631,10 @@ class QAFindFormMulti(QAForm):      qa_alteration_causes = widgets.Select2MultipleField(          label=_(u"Alteration cause"), required=False      ) -    qa_conservatory_state= forms.ChoiceField(label=_("Conservatory state"), -                                             required=False, choices=[]) +    qa_conservatory_state = forms.ChoiceField(label=_("Conservatory state"), +                                              required=False, choices=[]) +    qa_treatment_emergency = forms.ChoiceField(label=_("Treatment emergency"), +                                               choices=[], required=False)      qa_comment = forms.CharField(          label=_(u"Comment"), required=False,          widget=forms.Textarea) @@ -638,6 +642,8 @@ class QAFindFormMulti(QAForm):      qa_checked_type = forms.ChoiceField(label=_(u"Check"), required=False)      qa_check_date = forms.DateField(          label=_(u"Check date"), widget=DatePicker, required=False) +    qa_appraisal_date = forms.DateField( +        label=_("Appraisal date"), widget=DatePicker, required=False)      qa_period = widgets.Select2MultipleField(          label=_("Period"), choices=[], required=False) @@ -655,6 +661,7 @@ class QAFindFormMulti(QAForm):                    is_multiple=True),          FieldType('qa_checked_type', models.CheckedType),          FieldType('qa_conservatory_state', models.ConservatoryState), +        FieldType('qa_treatment_emergency', models.TreatmentEmergencyType),          FieldType('qa_period', Period, is_multiple=True),      ] @@ -726,6 +733,12 @@ class QAFindBasketForm(IshtarForm):              if not self.cleaned_data['qa_bf_basket']:                  raise forms.ValidationError(                      _(u"On update, you have to select a basket.")) +            q = Q(user=self.user) | Q(shared_write_with__pk=self.user.pk) +            q = models.FindBasket.objects.filter(q).filter( +                pk=self.cleaned_data['qa_bf_basket']) +            if not q.count(): +                raise forms.ValidationError( +                    _("You cannot update the selected basket."))              return self.cleaned_data          label = self.cleaned_data['qa_bf_label'].strip()          if not label: @@ -738,8 +751,9 @@ class QAFindBasketForm(IshtarForm):      def save(self, items):          if self.cleaned_data['qa_bf_create_or_update'] == 'update': -            basket = models.FindBasket.objects.get( -                user=self.user, pk=self.cleaned_data['qa_bf_basket']) +            q = Q(user=self.user) | Q(shared_write_with__pk=self.user.pk) +            basket = models.FindBasket.objects.filter(q).get( +                pk=self.cleaned_data['qa_bf_basket'])          else:              label = self.cleaned_data['qa_bf_label'].strip()              basket = models.FindBasket.objects.create( @@ -763,7 +777,7 @@ class QAFindDuplicateForm(IshtarForm):          self.find = kwargs.pop('items')[0]          super(QAFindDuplicateForm, self).__init__(*args, **kwargs)          self.fields['label'].initial = self.find.label + str( -            _(u" - duplicate")) +            _(" - duplicate"))          self.fields['denomination'].initial = self.find.denomination or ""      def save(self): @@ -894,9 +908,9 @@ DatingFormSet.form_admin_name = _(u"Find - 040 - Dating")  DatingFormSet.form_slug = "find-040-dating" -class FindSelect(HistorySelect): +class FindSelect(DocumentItemSelect):      _model = models.Find -    form_admin_name = _(u"Find - 001 - Search") +    form_admin_name = _("Find - 001 - Search")      form_slug = "find-001-search"      FORM_FILTERS = [          (_(u"Find origin"), [ @@ -1037,9 +1051,9 @@ class FindSelect(HistorySelect):              reverse_lazy('autocomplete-materialtype'),              associated_model=models.MaterialType),      ) -    material_type_quality = forms.ChoiceField(label=_(u"Material type quality"), +    material_type_quality = forms.ChoiceField(label=_("Material type quality"),                                                choices=[]) -    material_comment = forms.CharField(label=_(u"Comment on the material")) +    material_comment = forms.CharField(label=_("Comment on the material"))      object_types = forms.IntegerField(          label=_(u"Object type"),          widget=widgets.JQueryAutoComplete( @@ -1168,7 +1182,6 @@ class FindSelect(HistorySelect):      appraisal_date__before = forms.DateField(          label=_(u"Appraisal date before"), widget=DatePicker) -    documents__image__isnull = forms.NullBooleanField(label=_(u"Has an image?"))      loan = forms.NullBooleanField(label=_(u"Loan?"))      treatments_file_end_date = forms.DateField(          label=_(u"Treatment file end date before"), widget=DatePicker  | 
