diff options
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r-- | archaeological_operations/forms.py | 113 |
1 files changed, 72 insertions, 41 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index ec66a2a7a..981e4e3b9 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -411,15 +411,18 @@ OPERATOR, created = OrganizationType.objects.get_or_create(txt_idx='operator') class OperationSelect(TableSelect): - year = forms.IntegerField(label=_("Year")) - operation_code = forms.IntegerField(label=_(u"Numeric reference")) - common_name = forms.CharField(label=_(u"Name (full text search)"), - max_length=30) if settings.COUNTRY == 'fr': code_patriarche = forms.IntegerField(label="Code PATRIARCHE") - towns = get_town_field() + common_name = forms.CharField(label=_(u"Name (full text search)"), + max_length=30) operation_type = forms.ChoiceField(label=_(u"Operation type"), choices=[]) + year = forms.IntegerField(label=_("Year")) + operation_code = forms.IntegerField(label=_(u"Numeric reference")) + towns = get_town_field() + if settings.ISHTAR_DPTS: + towns__numero_insee__startswith = forms.ChoiceField( + label="Department", choices=[]) scientist = forms.IntegerField( widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person-permissive', @@ -427,6 +430,14 @@ class OperationSelect(TableSelect): unicode(SRA_AGENT.pk)])]), associated_model=Person), label=_(u"Scientist in charge")) + operator = forms.IntegerField( + label=_("Operator"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-organization', args=[OPERATOR.pk]), + associated_model=Organization), + validators=[valid_id(Organization)]) + operator_reference = forms.CharField(label=_(u"Operator reference"), + max_length=20) in_charge = forms.IntegerField( widget=widgets.JQueryAutoComplete( reverse_lazy( @@ -436,14 +447,12 @@ class OperationSelect(TableSelect): ), associated_model=Person), label=_(u"In charge")) - operator = forms.IntegerField( - label=_("Operator"), + archaeological_sites = forms.IntegerField( + label=_("Archaelogical site"), widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-organization', args=[OPERATOR.pk]), - associated_model=Organization), - validators=[valid_id(Organization)]) - remains = forms.ChoiceField(label=_(u"Remains"), choices=[]) - periods = forms.ChoiceField(label=_(u"Periods"), choices=[]) + reverse_lazy('autocomplete-archaeologicalsite'), + associated_model=models.ArchaeologicalSite), + validators=[valid_id(models.ArchaeologicalSite)]) start_before = forms.DateField(label=_(u"Started before"), widget=widgets.JQueryDate) start_after = forms.DateField(label=_(u"Started after"), @@ -452,6 +461,8 @@ class OperationSelect(TableSelect): widget=widgets.JQueryDate) end_after = forms.DateField(label=_(u"Ended after"), widget=widgets.JQueryDate) + remains = forms.ChoiceField(label=_(u"Remains"), choices=[]) + periods = forms.ChoiceField(label=_(u"Periods"), choices=[]) parcel = ParcelField(label=_("Parcel (section/number)")) end_date = forms.NullBooleanField(label=_(u"Is open?")) history_creator = forms.IntegerField( @@ -460,10 +471,14 @@ class OperationSelect(TableSelect): reverse_lazy('autocomplete-person', args=['0', 'user']), associated_model=Person), validators=[valid_id(Person)]) + abstract = forms.CharField(label=_(u"Abstract (full text search)")) record_quality = forms.ChoiceField(label=_(u"Record quality")) report_processing = forms.ChoiceField(label=_(u"Report processing"), choices=[]) virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation")) + relation_types = forms.MultipleChoiceField( + label=_(u"Search within relations"), choices=[], + widget=forms.CheckboxSelectMultiple) def __init__(self, *args, **kwargs): super(OperationSelect, self).__init__(*args, **kwargs) @@ -481,12 +496,21 @@ class OperationSelect(TableSelect): self.fields['periods'].help_text = models.Period.get_help() self.fields['record_quality'].choices = \ [('', '--')] + list(models.QUALITY) + if settings.ISHTAR_DPTS: + k = 'towns__numero_insee__startswith' + self.fields[k].choices = [ + ('', '--')] + list(settings.ISHTAR_DPTS) + self.fields['relation_types'].choices = models.RelationType.get_types( + empty_first=False) def get_input_ids(self): ids = super(OperationSelect, self).get_input_ids() ids.pop(ids.index('parcel')) ids.append('parcel_0') ids.append('parcel_1') + ids.pop(ids.index('relation_types')) + for idx, c in enumerate(self.fields['relation_types'].choices): + ids.append('relation_types_{}'.format(idx)) return ids @@ -544,6 +568,13 @@ if FILES_AVAILABLE: reverse_lazy('autocomplete-file'), associated_model=File), validators=[valid_id(File)], required=False) + +class OperationFormAbstract(forms.Form): + form_label = _(u"Abstract") + abstract = forms.CharField( + label=_(u"Abstract"), + widget=forms.Textarea(attrs={'class': 'xlarge'}), required=False) + SLICING = (("month", _(u"months")), ('year', _(u"years")),) DATE_SOURCE = (('creation', _(u"Creation date")), @@ -635,6 +666,21 @@ class OperationFormGeneral(forms.Form): 'report_processing': models.ReportState, 'archaeological_site': models.ArchaeologicalSite} pk = forms.IntegerField(required=False, widget=forms.HiddenInput) + if settings.COUNTRY == 'fr': + code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE", + required=False) + common_name = forms.CharField(label=_(u"Generic name"), required=False, + max_length=120, widget=forms.Textarea) + operation_type = forms.ChoiceField(label=_(u"Operation type"), + choices=[]) + year = forms.IntegerField(label=_(u"Year"), + initial=lambda: datetime.datetime.now().year, + validators=[validators.MinValueValidator(1900), + validators.MaxValueValidator(2100)]) + operation_code = forms.IntegerField( + label=_(u"Operation code"), + initial=models.Operation.get_available_operation_code, + widget=OperationCodeInput(attrs={'readonly': 'readonly'})) scientist = forms.IntegerField( label=_("Head scientist"), widget=widgets.JQueryAutoComplete( @@ -652,6 +698,8 @@ class OperationFormGeneral(forms.Form): limit={'organization_type': (OPERATOR.pk,)}, associated_model=Organization, new=True), validators=[valid_id(Organization)], required=False) + operator_reference = forms.CharField(label=_(u"Operator reference"), + required=False, max_length=20) in_charge = forms.IntegerField( label=_("In charge"), widget=widgets.JQueryAutoComplete( @@ -660,8 +708,14 @@ class OperationFormGeneral(forms.Form): associated_model=Person, limit={'person_types': [SRA_AGENT.pk]}, new=True), validators=[valid_id(Person)], required=False) - operation_type = forms.ChoiceField(label=_(u"Operation type"), - choices=[]) + surface = forms.IntegerField( + required=False, widget=widgets.AreaWidget, + label=_(u"Total surface (m2)"), + validators=[validators.MinValueValidator(0), + validators.MaxValueValidator(999999999)]) + archaeological_site = widgets.MultipleAutocompleteField( + model=models.ArchaeologicalSite, + label=_("Associated archaeological sites"), new=True, required=False) start_date = forms.DateField( label=_(u"Start date"), required=False, widget=widgets.JQueryDate) excavation_end_date = forms.DateField( @@ -672,36 +726,14 @@ class OperationFormGeneral(forms.Form): widget=widgets.JQueryDate) report_processing = forms.ChoiceField(label=_(u"Report processing"), choices=[], required=False) - surface = forms.IntegerField( - required=False, widget=widgets.AreaWidget, - label=_(u"Total surface (m2)"), - validators=[validators.MinValueValidator(0), - validators.MaxValueValidator(999999999)]) - year = forms.IntegerField(label=_(u"Year"), - initial=lambda: datetime.datetime.now().year, - validators=[validators.MinValueValidator(1900), - validators.MaxValueValidator(2100)]) - operation_code = forms.IntegerField( - label=_(u"Operation code"), - initial=models.Operation.get_available_operation_code, - widget=OperationCodeInput(attrs={'readonly': 'readonly'})) - common_name = forms.CharField(label=_(u"Generic name"), required=False, - max_length=120, widget=forms.Textarea) - operator_reference = forms.CharField(label=_(u"Operator reference"), - required=False, max_length=20) - archaeological_site = widgets.MultipleAutocompleteField( - model=models.ArchaeologicalSite, - label=_("Associated archaeological sites"), new=True, required=False) if settings.COUNTRY == 'fr': - negative_result = forms.NullBooleanField( - required=False, label=u"Résultat considéré comme négatif") - code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE", - required=False) code_dracar = forms.CharField( label=u"Code DRACAR", required=False, validators=[validators.MaxLengthValidator(10)]) cira_date = forms.DateField(label=u"Date avis CIRA", required=False, widget=widgets.JQueryDate) + negative_result = forms.NullBooleanField( + required=False, label=u"Résultat considéré comme négatif") cira_rapporteur = forms.IntegerField( label=u"Rapporteur CIRA", widget=widgets.JQueryAutoComplete( @@ -1068,8 +1100,7 @@ class AdministrativeActOpeSelect(TableSelect): if settings.ISHTAR_DPTS: k = 'operation__towns__numero_insee__startswith' self.fields[k].choices = [ - ('', '--')] + [(str(dpt), str(dpt)) - for dpt in settings.ISHTAR_DPTS] + ('', '--')] + list(settings.ISHTAR_DPTS) class AdministrativeActOpeFormSelection(forms.Form): |