diff options
| -rw-r--r-- | archaeological_files/forms.py | 75 | ||||
| -rw-r--r-- | archaeological_files/views.py | 17 | ||||
| -rw-r--r-- | archaeological_operations/forms.py | 99 | ||||
| -rw-r--r-- | archaeological_operations/views.py | 78 | ||||
| -rw-r--r-- | ishtar_common/views.py | 1 | 
5 files changed, 178 insertions, 92 deletions
| diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 42b3f6b6f..8b3513438 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -53,14 +53,25 @@ class FileSelect(TableSelect):      internal_reference = forms.CharField(max_length=200,                                           label=_("Other reference"))      towns = get_town_field() +    parcel = ParcelField(label=_("Parcel (section/number)"))      if settings.ISHTAR_DPTS:          towns__numero_insee__startswith = forms.ChoiceField(              label="Department", choices=[])      name = forms.CharField(label=_(u"File name"), max_length=200)      file_type = forms.ChoiceField(label=_("File type"), choices=[]) -    saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=[]) -    parcel = ParcelField(label=_("Parcel (section/number)"))      end_date = forms.NullBooleanField(label=_(u"Is active?")) +    saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=[]) +    permit_type = forms.ChoiceField(label=_("Permit type"), choices=[]) +    permit_reference = forms.CharField(max_length=200, +                                       label=_("Permit reference")) +    comment = forms.CharField(label=_(u"Comment"), max_length=500) +    in_charge = forms.IntegerField( +        label=_(u"In charge"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-person', +                         args=[SRA_AGENT.pk]), +            associated_model=Person), +        validators=[valid_id(Person)])      general_contractor = forms.IntegerField(          label=_(u"General contractor"),          widget=widgets.JQueryAutoComplete( @@ -75,27 +86,27 @@ class FileSelect(TableSelect):                           args=[GENERAL_CONTRACTOR_ORGA.pk]),              associated_model=Organization),          validators=[valid_id(Organization)]) -    in_charge = forms.IntegerField( -        label=_(u"In charge"), +    history_creator = forms.IntegerField( +        label=_(u"Created by"),          widget=widgets.JQueryAutoComplete(              reverse_lazy('autocomplete-person', -                         args=[SRA_AGENT.pk]), +                         args=['0', 'user']),              associated_model=Person),          validators=[valid_id(Person)]) -    history_creator = forms.IntegerField( -        label=_(u"Created by"), +    history_modifier = forms.IntegerField( +        label=_(u"Modified by"),          widget=widgets.JQueryAutoComplete(              reverse_lazy('autocomplete-person',                           args=['0', 'user']),              associated_model=Person),          validators=[valid_id(Person)]) -    permit_reference = forms.CharField(max_length=200, -                                       label=_("Permit reference"))      def __init__(self, *args, **kwargs):          super(FileSelect, self).__init__(*args, **kwargs)          self.fields['saisine_type'].choices = models.SaisineType.get_types()          self.fields['saisine_type'].help_text = models.SaisineType.get_help() +        self.fields['permit_type'].choices = models.PermitType.get_types() +        self.fields['permit_type'].help_text = models.PermitType.get_help()          self.fields['file_type'].choices = models.FileType.get_types()          self.fields['file_type'].help_text = models.FileType.get_help()          if settings.ISHTAR_DPTS: @@ -407,8 +418,21 @@ class AdministrativeActFileModifySelect(TableSelect):  class AdministrativeActFileSelect(TableSelect): -    associated_file__towns = get_town_field() +    year = forms.IntegerField(label=_("Year")) +    index = forms.IntegerField(label=_("Index")) +    if settings.COUNTRY == 'fr': +        ref_sra = forms.CharField(label=u"Autre référence", +                                  max_length=15)      act_type = forms.ChoiceField(label=_("Act type"), choices=[]) +    indexed = forms.NullBooleanField(label=_(u"Indexed?")) +    associated_file__towns = get_town_field() +    parcel = ParcelField(label=_("Parcel (section/number)")) +    if settings.ISHTAR_DPTS: +        associated_file__towns__numero_insee__startswith = forms.ChoiceField( +            label=_(u"Department"), choices=[]) +    act_object = forms.CharField(label=_(u"Object"), +                                 max_length=300) +      signature_date_after = forms.DateField(          label=_(u"Signature date after"), widget=widgets.JQueryDate)      signature_date_before = forms.DateField( @@ -433,12 +457,12 @@ class AdministrativeActFileSelect(TableSelect):              associated_model=Organization),          validators=[valid_id(Organization)])      associated_file__numeric_reference = forms.IntegerField( -        label=_("Numeric reference")) -    associated_file__year = forms.IntegerField(label=_("Year")) +        label=_("File numeric reference")) +    associated_file__year = forms.IntegerField(label=_("File year"))      associated_file__internal_reference = forms.CharField( -        max_length=200, label=_("Other reference")) +        max_length=200, label=_("File other reference"))      associated_file__in_charge = forms.IntegerField( -        label=_(u"In charge"), +        label=_(u"File in charge"),          widget=widgets.JQueryAutoComplete(              reverse_lazy(                  'autocomplete-person', @@ -446,12 +470,7 @@ class AdministrativeActFileSelect(TableSelect):              associated_model=Person),          validators=[valid_id(Person)])      associated_file__permit_reference = forms.CharField( -        max_length=200, label=_("Permit reference")) -    if settings.ISHTAR_DPTS: -        operation__towns__numero_insee__startswith = forms.ChoiceField( -            label=_(u"Department"), choices=[]) -    act_object = forms.CharField(label=_(u"Object (full text search)"), -                                 max_length=300) +        max_length=200, label=_("File permit reference"))      history_creator = forms.IntegerField(          label=_(u"Created by"),          widget=widgets.JQueryAutoComplete( @@ -460,6 +479,13 @@ class AdministrativeActFileSelect(TableSelect):                  args=['0', 'user']),              associated_model=Person),          validators=[valid_id(Person)]) +    history_modifier = forms.IntegerField( +        label=_(u"Modified by"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-person', +                         args=['0', 'user']), +            associated_model=Person), +        validators=[valid_id(Person)])      def __init__(self, *args, **kwargs):          super(AdministrativeActFileSelect, self).__init__(*args, **kwargs) @@ -468,10 +494,17 @@ class AdministrativeActFileSelect(TableSelect):          self.fields['act_type'].help_text = ActType.get_help(              dct={'intented_to': 'F'})          if settings.ISHTAR_DPTS: -            k = 'operation__towns__numero_insee__startswith' +            k = 'associated_file__towns__numero_insee__startswith'              self.fields[k].choices = [                  ('', '--')] + list(settings.ISHTAR_DPTS) +    def get_input_ids(self): +        ids = super(AdministrativeActFileSelect, self).get_input_ids() +        ids.pop(ids.index('parcel')) +        ids.append('parcel_0') +        ids.append('parcel_1') +        return ids +  class AdministrativeActFileFormSelection(AdministrativeActOpeFormSelection):      pk = forms.IntegerField( diff --git a/archaeological_files/views.py b/archaeological_files/views.py index e31cd00b8..5eed99278 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -89,10 +89,12 @@ get_file = get_item(          'towns__numero_insee__startswith':          'towns__numero_insee__startswith',          'name': 'name__icontains', +        'comment': 'comment__icontains',          'permit_reference': 'permit_reference__icontains',          'general_contractor__attached_to':              'general_contractor__attached_to__pk',          'history_creator': 'history_creator__ishtaruser__person__pk', +        'history_modifier': 'history_modifier__ishtaruser__person__pk',      },)  revert_file = revert_item(models.File) @@ -116,7 +118,8 @@ get_administrativeactfile = get_item(          'year': 'signature_date__year',          'associated_file__towns': 'associated_file__towns__pk',          'history_creator': 'history_creator__ishtaruser__person__pk', -        'operation__towns': 'operation__towns__pk', +        'associated_file__operations__code_patriarche': +        'associated_file__operations__code_patriarche',          'act_type__intented_to': 'act_type__intented_to',          'act_object': 'act_object__icontains',          'signature_date_before': 'signature_date__lte', @@ -124,10 +127,18 @@ get_administrativeactfile = get_item(          'associated_file__general_contractor__attached_to':              'associated_file__general_contractor__attached_to__pk',          'associated_file__name': 'associated_file__name__icontains', -        'operation__towns__numero_insee__startswith': -        'operation__towns__numero_insee__startswith', +        'associated_file__towns__numero_insee__startswith': +        'associated_file__towns__numero_insee__startswith', +        'indexed': 'index__isnull', +        'parcel_0': ('operation__parcels__section', +                     'associated_file__parcels__section'), +        'parcel_1': ( +            'operation__parcels__parcel_number', +            'associated_file__parcels__parcel_number'),          'associated_file__permit_reference':              'associated_file__permit_reference__icontains'}, +    reversed_bool_fields=['index__isnull'], +    base_request={"associated_file__pk__isnull": False},      relative_session_names={'file': 'associated_file__pk'}) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 981e4e3b9..d2ec086ae 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -412,17 +412,29 @@ OPERATOR, created = OrganizationType.objects.get_or_create(txt_idx='operator')  class OperationSelect(TableSelect):      if settings.COUNTRY == 'fr': -        code_patriarche = forms.IntegerField(label="Code PATRIARCHE") -    common_name = forms.CharField(label=_(u"Name (full text search)"), -                                  max_length=30) -    operation_type = forms.ChoiceField(label=_(u"Operation type"), -                                       choices=[]) +        code_patriarche = forms.IntegerField( +            label="Numéro d'opération (OA Patriarche)")      year = forms.IntegerField(label=_("Year"))      operation_code = forms.IntegerField(label=_(u"Numeric reference"))      towns = get_town_field() +    parcel = ParcelField(label=_("Parcel (section/number)"))      if settings.ISHTAR_DPTS:          towns__numero_insee__startswith = forms.ChoiceField(              label="Department", choices=[]) +    common_name = forms.CharField(label=_(u"Name"), +                                  max_length=30) +    operation_type = forms.ChoiceField(label=_(u"Operation type"), +                                       choices=[]) +    end_date = forms.NullBooleanField(label=_(u"Is open?")) +    in_charge = forms.IntegerField( +        widget=widgets.JQueryAutoComplete( +            reverse_lazy( +                'autocomplete-person-permissive', +                args=["_".join( +                    [unicode(PersonType.objects.get(txt_idx='sra_agent').pk)])] +            ), +            associated_model=Person), +        label=_(u"In charge"))      scientist = forms.IntegerField(          widget=widgets.JQueryAutoComplete(              reverse_lazy('autocomplete-person-permissive', @@ -436,23 +448,10 @@ class OperationSelect(TableSelect):              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( -                'autocomplete-person-permissive', -                args=["_".join( -                    [unicode(PersonType.objects.get(txt_idx='sra_agent').pk)])] -            ), -            associated_model=Person), -        label=_(u"In charge")) -    archaeological_sites = forms.IntegerField( -        label=_("Archaelogical site"), -        widget=widgets.JQueryAutoComplete( -            reverse_lazy('autocomplete-archaeologicalsite'), -            associated_model=models.ArchaeologicalSite), -        validators=[valid_id(models.ArchaeologicalSite)]) +    # operator_reference = forms.CharField(label=_(u"Operator reference"), +    #                                      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"), @@ -461,24 +460,34 @@ 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?")) +    relation_types = forms.MultipleChoiceField( +        label=_(u"Search within relations"), choices=[], +        widget=forms.CheckboxSelectMultiple) +    comment = forms.CharField(label=_(u"Comment"), max_length=500) +    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")) +    archaeological_sites = forms.IntegerField( +        label=_("Archaelogical site"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-archaeologicalsite'), +            associated_model=models.ArchaeologicalSite), +        validators=[valid_id(models.ArchaeologicalSite)])      history_creator = forms.IntegerField(          label=_(u"Created by"),          widget=widgets.JQueryAutoComplete(              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) +    history_modifier = forms.IntegerField( +        label=_(u"Modified by"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-person', +                         args=['0', 'user']), +            associated_model=Person), +        validators=[valid_id(Person)])      def __init__(self, *args, **kwargs):          super(OperationSelect, self).__init__(*args, **kwargs) @@ -1075,14 +1084,18 @@ class AdministrativeActOpeSelect(TableSelect):      year = forms.IntegerField(label=_("Year"))      index = forms.IntegerField(label=_("Index"))      if settings.COUNTRY == 'fr': -        ref_sra = forms.CharField(label=u"Référence SRA", +        ref_sra = forms.CharField(label=u"Autre référence",                                    max_length=15) +        operation__code_patriarche = forms.IntegerField( +            label="Numéro d'opération (OA Patriarche)")      act_type = forms.ChoiceField(label=_("Act type"), choices=[]) +    indexed = forms.NullBooleanField(label=_(u"Indexed?"))      operation__towns = get_town_field() +    parcel = ParcelField(label=_("Parcel (section/number)"))      if settings.ISHTAR_DPTS:          operation__towns__numero_insee__startswith = forms.ChoiceField(              label=_(u"Department"), choices=[]) -    act_object = forms.CharField(label=_(u"Object (full text search)"), +    act_object = forms.CharField(label=_(u"Object"),                                   max_length=300)      history_creator = forms.IntegerField(          label=_(u"Created by"), @@ -1090,6 +1103,13 @@ class AdministrativeActOpeSelect(TableSelect):              reverse_lazy('autocomplete-person', args=['0', 'user']),              associated_model=Person),          validators=[valid_id(Person)]) +    history_modifier = forms.IntegerField( +        label=_(u"Modified by"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-person', +                         args=['0', 'user']), +            associated_model=Person), +        validators=[valid_id(Person)])      def __init__(self, *args, **kwargs):          super(AdministrativeActOpeSelect, self).__init__(*args, **kwargs) @@ -1102,6 +1122,13 @@ class AdministrativeActOpeSelect(TableSelect):              self.fields[k].choices = [                  ('', '--')] + list(settings.ISHTAR_DPTS) +    def get_input_ids(self): +        ids = super(AdministrativeActOpeSelect, self).get_input_ids() +        ids.pop(ids.index('parcel')) +        ids.append('parcel_0') +        ids.append('parcel_1') +        return ids +  class AdministrativeActOpeFormSelection(forms.Form):      form_label = _("Administrative act search") diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 9482f44b4..5299b7131 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.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 @@ -132,26 +132,30 @@ get_operation = get_item(      bool_fields=['end_date__isnull', 'virtual_operation'],      dated_fields=['start_date__lte', 'start_date__gte',                    'excavation_end_date__lte', 'excavation_end_date__gte'], -    extra_request_keys={'common_name': 'common_name__icontains', -                        'abstract': 'abstract__icontains', -                        'end_date': 'end_date__isnull', -                        'year_index': ('year', 'operation_code'), -                        'start_before': 'start_date__lte', -                        'start_after': 'start_date__gte', -                        'end_before': 'excavation_end_date__lte', -                        'end_after': 'excavation_end_date__gte', -                        'towns__numero_insee__startswith': -                        'towns__numero_insee__startswith', -                        'parcel_0': ('parcels__section', -                                     'associated_file__parcels__section'), -                        'parcel_1': ( -                            'parcels__parcel_number', -                            'associated_file__parcels__parcel_number'), -                        'history_creator': -                        'history_creator__ishtaruser__person__pk', -                        'archaeological_sites': -                        'archaeological_sites__pk', -                        }, +    extra_request_keys={ +        'common_name': 'common_name__icontains', +        'comment': 'comment__icontains', +        'abstract': 'abstract__icontains', +        'end_date': 'end_date__isnull', +        'year_index': ('year', 'operation_code'), +        'start_before': 'start_date__lte', +        'start_after': 'start_date__gte', +        'end_before': 'excavation_end_date__lte', +        'end_after': 'excavation_end_date__gte', +        'towns__numero_insee__startswith': +        'towns__numero_insee__startswith', +        'parcel_0': ('parcels__section', +                     'associated_file__parcels__section'), +        'parcel_1': ( +            'parcels__parcel_number', +            'associated_file__parcels__parcel_number'), +        'history_creator': +        'history_creator__ishtaruser__person__pk', +        'history_modifier': +        'history_modifier__ishtaruser__person__pk', +        'archaeological_sites': +        'archaeological_sites__pk', +    },  )  show_operation = show_item(models.Operation, 'operation')  revert_operation = revert_item(models.Operation) @@ -167,22 +171,34 @@ get_operationsource = get_item(          'comment': 'comment__icontains',          'additional_information': 'additional_information__icontains',          'operation__towns': 'operation__towns__pk', +        'operation__code_patriarche': 'operation__code_patriarche',          'operation__operation_type': 'operation__operation_type__pk',          'operation__year': 'operation__year'})  get_administrativeactop = get_item(      models.AdministrativeAct,      'get_administrativeactop', 'administrativeactop', -    extra_request_keys={'associated_file__towns': 'associated_file__towns__pk', -                        'operation__towns': 'operation__towns__pk', -                        'act_type__intented_to': 'act_type__intented_to', -                        'year': 'signature_date__year', -                        'act_object': 'act_object__icontains', -                        'history_creator': -                        'history_creator__ishtaruser__person__pk', -                        'operation__towns__numero_insee__startswith': -                        'operation__towns__numero_insee__startswith' -                        }, +    extra_request_keys={ +        'associated_file__towns': 'associated_file__towns__pk', +        'operation__towns': 'operation__towns__pk', +        'operation__code_patriarche': 'operation__code_patriarche', +        'act_type__intented_to': 'act_type__intented_to', +        'year': 'signature_date__year', +        'act_object': 'act_object__icontains', +        'history_creator': +        'history_creator__ishtaruser__person__pk', +        'history_modifier': +        'history_modifier__ishtaruser__person__pk', +        'operation__towns__numero_insee__startswith': +        'operation__towns__numero_insee__startswith', +        'indexed': 'index__isnull', +        'parcel_0': ('operation__parcels__section', +                     'operation__associated_file__parcels__section'), +        'parcel_1': ( +            'operation__parcels__parcel_number', +            'operation__associated_file__parcels__parcel_number'), +    }, +    reversed_bool_fields=['index__isnull'],      relative_session_names={'operation': 'operation__pk'})  get_administrativeact = get_item( diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 50acd5595..981522d0d 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -384,7 +384,6 @@ def get_item(model, func_name, default_name, extra_request_keys=[],              if k.startswith('relation_types_'):                  relation_types.add(request_items[k])                  continue -          for k in request_keys:              val = request_items.get(k)              if not val: | 
