diff options
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r-- | archaeological_operations/forms.py | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index d9f5ece9b..0faad26a9 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -62,7 +62,7 @@ class ParcelField(forms.MultiValueField): class ParcelForm(forms.Form): form_label = _("Parcels") base_model = 'parcel' - associated_models = {'parcel':models.Parcel, 'town':models.Town} + associated_models = {'parcel':models.Parcel, 'town':models.Town,} town = forms.ChoiceField(label=_("Town"), choices=(), required=False, validators=[valid_id(models.Town)]) year = forms.IntegerField(label=_("Year"), required=False, @@ -275,7 +275,8 @@ class OperationFormGeneral(forms.Form): form_label = _(u"General") associated_models = {'in_charge':Person, 'associated_file':File, - 'operation_type':models.OperationType} + 'operation_type':models.OperationType, + 'archaeological_sites':models.ArchaeologicalSite} currents = {'associated_file':File} pk = forms.IntegerField(required=False, widget=forms.HiddenInput) in_charge = forms.IntegerField(label=_("Person in charge of the operation"), @@ -312,6 +313,10 @@ class OperationFormGeneral(forms.Form): max_length=120, widget=forms.Textarea) operator_reference = forms.CharField(label=_(u"Operator reference"), required=False, max_length=20) + archaeological_sites = widgets.MultipleAutocompleteField( + model=models.ArchaeologicalSite, + label=_("Associated archaelogical sites"), + new=True, required=False) if settings.COUNTRY == 'fr': negative_result = forms.NullBooleanField(required=False, label=u"Résultat considéré comme négatif") @@ -489,6 +494,31 @@ PeriodFormset = formset_factory(PeriodForm, can_delete=True, formset=PeriodFormSet) PeriodFormset.form_label = _("Periods") +class ArchaeologicalSiteForm(forms.Form): + reference = forms.CharField(label=_(u"Reference"), max_length=20) + name = forms.CharField(label=_(u"Name"), max_length=200, required=False) + + def clean_reference(self): + reference = self.cleaned_data['reference'] + if models.ArchaeologicalSite.objects.filter( + reference=reference).count(): + raise forms.ValidationError(_(u"This reference already exists.")) + return reference + + def save(self, user): + dct = self.cleaned_data + dct['history_modifier'] = user + return models.ArchaeologicalSite.objects.create(**dct) + +class ArchaeologicalSiteSelectionForm(forms.Form): + form_label = _("Associated archaelogical sites") + archaeological_sites = forms.IntegerField( + widget=widgets.JQueryAutoComplete(reverse_lazy( + 'autocomplete-archaeologicalsite'), + associated_model=models.ArchaeologicalSite, new=True, + multiple=True), + label=_(u"Search")) + class FinalOperationClosingForm(FinalForm): confirm_msg = " " confirm_end_msg = _(u"Would you like to close this operation?") |