summaryrefslogtreecommitdiff
path: root/archaeological_operations/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r--archaeological_operations/forms.py34
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?")