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 |
