diff options
Diffstat (limited to 'archaeological_operations/forms.py')
| -rw-r--r-- | archaeological_operations/forms.py | 141 | 
1 files changed, 68 insertions, 73 deletions
| diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 6ba343508..4f5ac0435 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -40,6 +40,7 @@ from ishtar_common.models import valid_id, Person, Town, \      organization_type_pk_lazy  from ishtar_common.wizards import MultiValueDict +from bootstrap_datepicker.widgets import DateField  from archaeological_files.models import File  import models @@ -49,7 +50,7 @@ from ishtar_common import widgets  from ishtar_common.forms import FinalForm, FormSet, get_now, \      reverse_lazy, get_form_selection, TableSelect, get_data_from_formset, \ -    ManageOldType, CustomForm, FieldType +    ManageOldType, IshtarForm, CustomForm, FieldType  from ishtar_common.forms_common import TownFormSet, SourceForm, SourceSelect, \      get_town_field, TownForm @@ -66,7 +67,7 @@ class ParcelField(forms.MultiValueField):          return u"-".join(data_list) -class ParcelForm(forms.Form): +class ParcelForm(IshtarForm):      form_label = _("Parcels")      base_model = 'parcel'      associated_models = {'parcel': models.Parcel, 'town': models.Town, } @@ -202,7 +203,7 @@ class ParcelForm(forms.Form):          return res -class ParcelSelectionForm(forms.Form): +class ParcelSelectionForm(IshtarForm):      _town = forms.ChoiceField(label=_("Town"), choices=(), required=False,                                validators=[valid_id(models.Town)])      _parcel_selection = forms.CharField( @@ -367,7 +368,7 @@ class ParcelFormSet(FormSet):              return self.cleaned_data -class RecordRelationsForm(ManageOldType, forms.Form): +class RecordRelationsForm(ManageOldType):      base_model = 'right_relation'      current_model = models.RelationType      current_related_model = models.Operation @@ -525,14 +526,10 @@ class OperationSelect(TableSelect):      #                                      max_length=20)      remains = forms.ChoiceField(label=_(u"Remains"), choices=[])      periods = forms.ChoiceField(label=_(u"Periods"), choices=[]) -    start_before = forms.DateField(label=_(u"Started before"), -                                   widget=widgets.JQueryDate) -    start_after = forms.DateField(label=_(u"Started after"), -                                  widget=widgets.JQueryDate) -    end_before = forms.DateField(label=_(u"Ended before"), -                                 widget=widgets.JQueryDate) -    end_after = forms.DateField(label=_(u"Ended after"), -                                widget=widgets.JQueryDate) +    start_before = DateField(label=_(u"Started before")) +    start_after = DateField(label=_(u"Started after")) +    end_before = DateField(label=_(u"Ended before")) +    end_after = DateField(label=_(u"Ended after"))      relation_types = forms.MultipleChoiceField(          label=_(u"Search within relations"), choices=[],          widget=forms.CheckboxSelectMultiple) @@ -563,16 +560,16 @@ class OperationSelect(TableSelect):                           args=['0', 'user']),              associated_model=Person),          validators=[valid_id(Person)]) -    documentation_deadline_before = forms.DateField( -        label=_(u"Documentation deadline before"), widget=widgets.JQueryDate) -    documentation_deadline_after = forms.DateField( -        label=_(u"Documentation deadline after"), widget=widgets.JQueryDate) +    documentation_deadline_before = DateField( +        label=_(u"Documentation deadline before")) +    documentation_deadline_after = DateField( +        label=_(u"Documentation deadline after"))      documentation_received = forms.NullBooleanField(          label=_(u"Documentation received")) -    finds_deadline_before = forms.DateField( -        label=_(u"Finds deadline before"), widget=widgets.JQueryDate) -    finds_deadline_after = forms.DateField( -        label=_(u"Finds deadline after"), widget=widgets.JQueryDate) +    finds_deadline_before = DateField( +        label=_(u"Finds deadline before")) +    finds_deadline_after = DateField( +        label=_(u"Finds deadline after"))      finds_received = forms.NullBooleanField(          label=_(u"Finds received")) @@ -618,13 +615,14 @@ class OperationSelect(TableSelect):          return ids -class OperationFormSelection(forms.Form): +class OperationFormSelection(IshtarForm): +    SEARCH_AND_SELECT = True      form_label = _(u"Operation search")      associated_models = {'pk': models.Operation}      currents = {'pk': models.Operation}      pk = forms.IntegerField(          label="", required=False, -        widget=widgets.JQueryJqGrid( +        widget=widgets.DataTable(              reverse_lazy('get-operation'), OperationSelect, models.Operation,              source_full=reverse_lazy('get-operation-full')),          validators=[valid_id(models.Operation)]) @@ -662,7 +660,7 @@ class OperationCodeInput(forms.TextInput):          return mark_safe(rendered + js) -class OperationFormFileChoice(forms.Form): +class OperationFormFileChoice(IshtarForm):      form_label = _(u"Associated file")      associated_models = {'associated_file': File, }      currents = {'associated_file': File} @@ -673,7 +671,7 @@ class OperationFormFileChoice(forms.Form):          validators=[valid_id(File)], required=False) -class OperationFormAbstract(CustomForm, forms.Form): +class OperationFormAbstract(CustomForm, IshtarForm):      form_label = _(u"Abstract")      form_admin_name = _(u"Operation - 090 - Abstract")      form_slug = "operation-090-abstract" @@ -692,7 +690,7 @@ PREVENTIVE_RESARCH = (('all', _('All')),                        ('research', _(u"Research")),) -class DashboardForm(forms.Form): +class DashboardForm(IshtarForm):      slicing = forms.ChoiceField(label=_("Slicing"), choices=SLICING,                                  required=False)      department_detail = forms.BooleanField( @@ -706,10 +704,8 @@ class DashboardForm(forms.Form):                                         required=False)      operator = forms.ChoiceField(label=_("Operator"), choices=[],                                   required=False) -    after = forms.DateField(label=_(u"Date after"), -                            widget=widgets.JQueryDate, required=False) -    before = forms.DateField(label=_(u"Date before"), -                             widget=widgets.JQueryDate, required=False) +    after = DateField(label=_(u"Date after"), required=False) +    before = DateField(label=_(u"Date before"), required=False)      with_report = forms.BooleanField(label=_("With reports"), required=False)      with_finds = forms.BooleanField(label=_("With finds"), required=False) @@ -744,9 +740,9 @@ class DashboardForm(forms.Form):          if self.cleaned_data.get('preventive_research'):              preventive_research = self.cleaned_data['preventive_research']              if preventive_research == 'preventive': -                fltr['file_type__preventive'] = True -            elif preventive_research == 'preventive': -                fltr['file_type__preventive'] = False +                fltr['operation_type__preventive'] = True +            elif preventive_research == 'research': +                fltr['operation_type__preventive'] = False          if self.cleaned_data.get('operation_type'):              fltr['operation_type_id'] = self.cleaned_data['operation_type']          if self.cleaned_data.get('operator'): @@ -762,7 +758,7 @@ class DashboardForm(forms.Form):          return fltr -class OperationFormGeneral(ManageOldType, CustomForm, forms.Form): +class OperationFormGeneral(CustomForm, ManageOldType):      form_label = _(u"General")      form_admin_name = _(u"Operation - 010 - General")      form_slug = "operation-010-general" @@ -781,12 +777,12 @@ class OperationFormGeneral(ManageOldType, CustomForm, forms.Form):                                            max_length=500,                                            widget=OAWidget,                                            required=False) +    operation_type = forms.ChoiceField(label=_(u"Operation type"), +                                       choices=[])      common_name = forms.CharField(label=_(u"Generic name"), required=False,                                    max_length=500, widget=forms.Textarea)      address = forms.CharField(label=_(u"Address / Locality"), required=False,                                max_length=500, 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(1000), @@ -831,19 +827,15 @@ class OperationFormGeneral(ManageOldType, CustomForm, forms.Form):          label=_(u"Total surface (m2)"),          validators=[validators.MinValueValidator(0),                      validators.MaxValueValidator(999999999)]) -    start_date = forms.DateField( -        label=_(u"Start date"), required=False, widget=widgets.JQueryDate) -    excavation_end_date = forms.DateField( -        label=_(u"Excavation end date"), required=False, -        widget=widgets.JQueryDate) -    report_delivery_date = forms.DateField( -        label=_(u"Report delivery date"), required=False, -        widget=widgets.JQueryDate) +    start_date = DateField(label=_(u"Start date"), required=False) +    excavation_end_date = DateField(label=_(u"Excavation end date"), +                                    required=False) +    report_delivery_date = DateField(label=_(u"Report delivery date"), +                                     required=False)      report_processing = forms.ChoiceField(label=_(u"Report processing"),                                            choices=[], required=False)      if settings.COUNTRY == 'fr': -        cira_date = forms.DateField(label=u"Date avis CIRA", required=False, -                                    widget=widgets.JQueryDate) +        cira_date = DateField(label=u"Date avis CIRA", required=False)          negative_result = forms.NullBooleanField(              required=False, label=u"Résultat considéré comme négatif")          cira_rapporteur = forms.IntegerField( @@ -858,14 +850,14 @@ class OperationFormGeneral(ManageOldType, CustomForm, forms.Form):                      person_type_pk_lazy('head_scientist')]},                  associated_model=Person, new=True),              validators=[valid_id(Person)], required=False) -    documentation_deadline = forms.DateField( +    documentation_deadline = DateField(          label=_(u"Deadline for submission of the documentation"), -        required=False, widget=widgets.JQueryDate) +        required=False)      documentation_received = forms.NullBooleanField(          required=False, label=_(u"Documentation received")) -    finds_deadline = forms.DateField( +    finds_deadline = DateField(          label=_(u"Deadline for submission of the finds"), required=False, -        widget=widgets.JQueryDate) +    )      finds_received = forms.NullBooleanField(          required=False, label=_(u"Finds received")) @@ -920,7 +912,7 @@ class OperationFormGeneral(ManageOldType, CustomForm, forms.Form):              fields = OrderedDict()              ope_code = self.fields.pop('operation_code')              for key, value in self.fields.items(): -                if key == 'year': +                if key == 'old_code':                      fields['operation_code'] = ope_code                  fields[key] = value              self.fields = fields @@ -1008,7 +1000,7 @@ OperationFormModifGeneral.associated_models = \  OperationFormModifGeneral.associated_models['associated_file'] = File -class CollaboratorForm(CustomForm, forms.Form): +class CollaboratorForm(CustomForm, IshtarForm):      form_label = _(u"Collaborators")      form_admin_name = _(u"Operation - 020 - Collaborators")      form_slug = "operation-020-collaborators" @@ -1024,7 +1016,7 @@ class CollaboratorForm(CustomForm, forms.Form):              self.fields['collaborator'].widget.attrs['full-width'] = True -class OperationFormPreventive(CustomForm, forms.Form): +class OperationFormPreventive(CustomForm, IshtarForm):      form_label = _(u"Preventive informations - excavation")      form_admin_name = _(u"Operation - 033 - Preventive - Excavation")      form_slug = "operation-033-preventive-excavation" @@ -1043,7 +1035,7 @@ class OperationFormPreventive(CustomForm, forms.Form):                          validators.MaxValueValidator(100)]) -class OperationFormPreventiveDiag(CustomForm, forms.Form): +class OperationFormPreventiveDiag(CustomForm, IshtarForm):      form_label = _("Preventive informations - diagnostic")      form_admin_name = _(u"Operation - 037 - Preventive - Diagnostic")      form_slug = "operation-037-preventive-diagnostic" @@ -1058,7 +1050,7 @@ class OperationFormPreventiveDiag(CustomForm, forms.Form):              label=_(u"Prescription on geoarchaeological context")) -class SelectedTownForm(forms.Form): +class SelectedTownForm(IshtarForm):      form_label = _("Towns")      associated_models = {'town': Town}      town = forms.ChoiceField(label=_("Town"), choices=(), @@ -1085,7 +1077,7 @@ TownFormset.form_admin_name = _(u"Operation - 040 - Towns (2)")  TownFormset.form_slug = "operation-040-towns-2" -class SelectedParcelForm(forms.Form): +class SelectedParcelForm(IshtarForm):      form_label = _("Parcels")      associated_models = {'parcel': models.Parcel}      parcel = forms.ChoiceField( @@ -1146,9 +1138,9 @@ class RemainForm(CustomForm, ManageOldType, forms.Form):      base_model = 'remain'      associated_models = {'remain': models.RemainType} -    remain = forms.MultipleChoiceField( -        label=_("Remain type"), required=False, choices=[], -        widget=forms.CheckboxSelectMultiple) +    remain = widgets.Select2MultipleField( +        label=_(u"Remain type"), required=False +    )      TYPES = [          FieldType('remain', models.RemainType, True), @@ -1162,16 +1154,16 @@ class PeriodForm(CustomForm, ManageOldType, forms.Form):      base_model = 'period'      associated_models = {'period': models.Period} -    period = forms.MultipleChoiceField( -        label=_("Period"), required=False, choices=[], -        widget=forms.CheckboxSelectMultiple) +    period = widgets.Select2MultipleField( +        label=_(u"Period"), required=False +    )      TYPES = [          FieldType('period', models.Period, True),      ] -class ArchaeologicalSiteForm(ManageOldType, forms.Form): +class ArchaeologicalSiteForm(ManageOldType):      reference = forms.CharField(label=_(u"Reference"), max_length=20)      name = forms.CharField(label=_(u"Name"), max_length=200, required=False)      periods = forms.MultipleChoiceField( @@ -1212,7 +1204,7 @@ class ArchaeologicalSiteForm(ManageOldType, forms.Form):          return item -class ArchaeologicalSiteBasicForm(forms.Form): +class ArchaeologicalSiteBasicForm(IshtarForm):      form_label = _("Archaeological site")      base_model = 'archaeological_site'      associated_models = {'archaeological_site': models.ArchaeologicalSite} @@ -1234,7 +1226,7 @@ ArchaeologicalSiteFormSet.form_admin_name = _(  ArchaeologicalSiteFormSet.form_slug = "operation-030-archaeological-sites" -class ArchaeologicalSiteSelectionForm(forms.Form): +class ArchaeologicalSiteSelectionForm(IshtarForm):      form_label = _("Associated archaeological sites")      archaeological_sites = forms.IntegerField(          widget=widgets.JQueryAutoComplete( @@ -1295,6 +1287,7 @@ class OperationSourceForm(SourceForm):                      "operation": unicode(operation), 'last_val': max_val})          return cleaned_data +  SourceOperationFormSelection = get_form_selection(      'SourceOperationFormSelection', _(u"Operation search"), 'operation',      models.Operation, OperationSelect, 'get-operation', @@ -1334,6 +1327,7 @@ OperationSourceFormSelection = get_form_selection(  class AdministrativeActOpeSelect(TableSelect): +    search_vector = forms.CharField(label=_(u"Full text search"))      year = forms.IntegerField(label=_("Year"))      index = forms.IntegerField(label=_("Index"))      if settings.COUNTRY == 'fr': @@ -1386,13 +1380,14 @@ class AdministrativeActOpeSelect(TableSelect):          return ids -class AdministrativeActOpeFormSelection(forms.Form): +class AdministrativeActOpeFormSelection(IshtarForm): +    SEARCH_AND_SELECT = True      form_label = _("Administrative act search")      associated_models = {'pk': models.AdministrativeAct}      currents = {'pk': models.AdministrativeAct}      pk = forms.IntegerField(          label="", required=False, -        widget=widgets.JQueryJqGrid( +        widget=widgets.DataTable(              reverse_lazy('get-administrativeactop'),              AdministrativeActOpeSelect, models.AdministrativeAct,              table_cols='TABLE_COLS_OPE'), @@ -1406,7 +1401,7 @@ class AdministrativeActOpeFormSelection(forms.Form):          return cleaned_data -class AdministrativeActOpeForm(CustomForm, ManageOldType, forms.Form): +class AdministrativeActOpeForm(CustomForm, ManageOldType):      form_label = _("General")      form_admin_name = _(u"Operation - Administrative act - General")      form_slug = "operation-adminact-general" @@ -1420,8 +1415,8 @@ class AdministrativeActOpeForm(CustomForm, ManageOldType, forms.Form):      #     validators=[valid_id(Person)], required=False)      act_object = forms.CharField(label=_(u"Object"), max_length=300,                                   widget=forms.Textarea, required=False) -    signature_date = forms.DateField( -        label=_(u"Signature date"), initial=get_now, widget=widgets.JQueryDate) +    signature_date = DateField( +        label=_(u"Signature date"), initial=get_now)      if settings.COUNTRY == 'fr':          ref_sra = forms.CharField(label=u"Autre référence", max_length=15,                                    required=False) @@ -1482,7 +1477,7 @@ class FinalAdministrativeActDeleteForm(FinalForm):      confirm_end_msg = _(u"Would you like to delete this administrative act?") -class DocumentGenerationAdminActForm(forms.Form): +class DocumentGenerationAdminActForm(IshtarForm):      _associated_model = models.AdministrativeAct      document_template = forms.ChoiceField(label=_("Template"), choices=[]) @@ -1529,7 +1524,7 @@ class DocumentGenerationAdminActForm(forms.Form):          return template.publish(c_object) -class GenerateDocForm(forms.Form): +class GenerateDocForm(IshtarForm):      form_label = _("Doc generation")      doc_generation = forms.ChoiceField(          required=False, choices=[], label=_(u"Generate the associated doc?")) @@ -1552,13 +1547,13 @@ class AdministrativeActRegisterSelect(AdministrativeActOpeSelect):          self.fields['act_type'].help_text = models.ActType.get_help() -class AdministrativeActRegisterFormSelection(forms.Form): +class AdministrativeActRegisterFormSelection(IshtarForm):      form_label = pgettext_lazy('admin act register', u"Register")      associated_models = {'pk': models.AdministrativeAct}      currents = {'pk': models.AdministrativeAct}      pk = forms.IntegerField(          label="", required=False, -        widget=widgets.JQueryJqGrid( +        widget=widgets.DataTable(              reverse_lazy('get-administrativeact'),              AdministrativeActRegisterSelect, models.AdministrativeAct,              table_cols='TABLE_COLS', | 
