diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-10-21 11:12:47 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-10-21 11:12:47 +0200 |
commit | f3bc312eccb7b03824915f7fd2918a0d247d90d8 (patch) | |
tree | 2b16e28b04695fa01e1fee0fad14c66cfbe6a526 /archaeological_operations | |
parent | 461e0320a8426fe82c4f6a7fd9cfa376c767fbdd (diff) | |
download | Ishtar-f3bc312eccb7b03824915f7fd2918a0d247d90d8.tar.bz2 Ishtar-f3bc312eccb7b03824915f7fd2918a0d247d90d8.zip |
Manage export with importer's templates (refs #3064)
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/models.py | 131 | ||||
-rw-r--r-- | archaeological_operations/views.py | 105 |
2 files changed, 128 insertions, 108 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index d64936c90..ce804765d 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -177,10 +177,56 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, QUALITY_DICT = dict(QUALITY) SHOW_URL = 'show-operation' TABLE_COLS = ['year_index', 'operation_type', 'remains', 'towns', - 'start_date', 'excavation_end_date'] - TABLE_COLS.insert(4, 'associated_file_short_label') + 'associated_file_short_label', 'start_date', + 'excavation_end_date'] IMAGE_PREFIX = 'operations/' SLUG = 'operation' + + # search parameters + BOOL_FIELDS = ['end_date__isnull', 'virtual_operation', + 'documentation_received', 'finds_received'] + DATED_FIELDS = [ + 'start_date__lte', 'start_date__gte', 'excavation_end_date__lte', + 'excavation_end_date__gte', 'documentation_deadline__lte', + 'documentation_deadline__gte', 'finds_deadline__lte', + 'finds_deadline__gte'] + RELATIVE_SESSION_NAMES = [('file', 'associated_file__pk')] + EXTRA_REQUEST_KEYS = { + 'common_name': 'common_name__icontains', + 'cached_label': 'cached_label__icontains', + 'comment': 'comment__icontains', + 'scientific_documentation_comment': + 'scientific_documentation_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'), + 'parcel_2': ( + 'parcels__public_domain', + 'associated_file__parcels__public_domain'), + 'history_creator': + 'history_creator__ishtaruser__person__pk', + 'history_modifier': + 'history_modifier__ishtaruser__person__pk', + 'archaeological_sites': + 'archaeological_sites__pk', + 'documentation_deadline_before': 'documentation_deadline__lte', + 'documentation_deadline_after': 'documentation_deadline__gte', + 'finds_deadline_before': 'finds_deadline__lte', + 'finds_deadline_after': 'finds_deadline__gte', + } + + # fields definition creation_date = models.DateField(_(u"Creation date"), default=datetime.date.today) end_date = models.DateField(_(u"Closing date"), null=True, blank=True) @@ -760,6 +806,31 @@ class OperationByDepartment(models.Model): class OperationSource(Source): + SHOW_URL = 'show-operationsource' + MODIFY_URL = 'operation_source_modify' + TABLE_COLS = ['operation.year', 'operation.operation_code', 'index'] + \ + Source.TABLE_COLS + + # search parameters + BOOL_FIELDS = ['duplicate'] + EXTRA_REQUEST_KEYS = { + 'title': 'title__icontains', + 'description': 'description__icontains', + 'comment': 'comment__icontains', + 'additional_information': 'additional_information__icontains', + 'person': 'authors__person__pk', + 'operation__towns': 'operation__towns__pk', + 'operation__operation_code': 'operation__operation_code', + 'operation__code_patriarche': 'operation__code_patriarche', + 'operation__operation_type': 'operation__operation_type__pk', + 'operation__year': 'operation__year'} + + # fields + operation = models.ForeignKey(Operation, verbose_name=_(u"Operation"), + related_name="source") + index = models.IntegerField(verbose_name=_(u"Index"), blank=True, + null=True) + class Meta: verbose_name = _(u"Operation documentation") verbose_name_plural = _(u"Operation documentations") @@ -775,14 +846,6 @@ class OperationSource(Source): ("delete_own_operationsource", ugettext(u"Can delete own Operation source")), ) - operation = models.ForeignKey(Operation, verbose_name=_(u"Operation"), - related_name="source") - index = models.IntegerField(verbose_name=_(u"Index"), blank=True, - null=True) - TABLE_COLS = ['operation.year', 'operation.operation_code', 'index'] + \ - Source.TABLE_COLS - SHOW_URL = 'show-operationsource' - MODIFY_URL = 'operation_source_modify' @property def owner(self): @@ -823,6 +886,54 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): TABLE_COLS.append('departments_label') TABLE_COLS_FILE.append('departments_label') TABLE_COLS_OPE.append('departments_label') + + # search parameters + DATED_FIELDS = ['signature_date__lte', 'signature_date__gte'] + ASSOCIATED_MODELS = [ + (models.File, 'associated_file'), + (Person, 'associated_file__general_contractor')] + EXTRA_REQUEST_KEYS = { + 'act_object': 'act_object__icontains', + 'act_type__intented_to': 'act_type__intented_to', + 'associated_file__general_contractor__attached_to': + 'associated_file__general_contractor__attached_to__pk', + 'associated_file__name': 'associated_file__name__icontains', + 'associated_file__operations__code_patriarche': + 'associated_file__operations__code_patriarche', + 'associated_file__permit_reference': + 'associated_file__permit_reference__icontains', + 'associated_file__towns': 'associated_file__towns__pk', + 'associated_file__towns__numero_insee__startswith': + 'associated_file__towns__numero_insee__startswith', + 'indexed': 'index__isnull', + 'history_creator': + 'history_creator__ishtaruser__person__pk', + 'history_modifier': + 'history_modifier__ishtaruser__person__pk', + 'operation__code_patriarche': 'operation__code_patriarche', + 'operation__towns': 'operation__towns__pk', + 'operation__towns__numero_insee__startswith': + 'operation__towns__numero_insee__startswith', + 'parcel_0': ('associated_file__parcels__section', + 'operation__parcels__section', + 'operation__associated_file__parcels__section'), + 'parcel_1': ( + 'associated_file__parcels__parcel_number' + 'operation__parcels__parcel_number', + 'operation__associated_file__parcels__parcel_number'), + 'parcel_2': ( + 'associated_file__parcels__public_domain', + 'operation__parcels__public_domain', + 'operation__associated_file__parcels__public_domain'), + 'signature_date_before': 'signature_date__lte', + 'signature_date_after': 'signature_date__gte', + 'year': 'signature_date__year', + } + REVERSED_BOOL_FIELDS = ['index__isnull'], + RELATIVE_SESSION_NAMES = [('operation', 'operation__pk'), + ('file', 'associated_file__pk')] + + # fields act_type = models.ForeignKey(ActType, verbose_name=_(u"Act type")) in_charge = models.ForeignKey( Person, blank=True, null=True, diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index ae82e9e89..18d57e617 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -136,112 +136,21 @@ def get_available_operation_code(request, year=None): models.Operation.get_available_operation_code(year)}) return HttpResponse(data, mimetype='text/plain') -get_operation = get_item( - models.Operation, 'get_operation', 'operation', - bool_fields=['end_date__isnull', 'virtual_operation', - 'documentation_received', 'finds_received'], - dated_fields=['start_date__lte', 'start_date__gte', - 'excavation_end_date__lte', 'excavation_end_date__gte', - 'documentation_deadline__lte', 'documentation_deadline__gte', - 'finds_deadline__lte', 'finds_deadline__gte', - ], - relative_session_names=[('file', 'associated_file__pk')], - extra_request_keys={ - 'common_name': 'common_name__icontains', - 'cached_label': 'cached_label__icontains', - 'comment': 'comment__icontains', - 'scientific_documentation_comment': - 'scientific_documentation_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'), - 'parcel_2': ( - 'parcels__public_domain', - 'associated_file__parcels__public_domain'), - 'history_creator': - 'history_creator__ishtaruser__person__pk', - 'history_modifier': - 'history_modifier__ishtaruser__person__pk', - 'archaeological_sites': - 'archaeological_sites__pk', - 'documentation_deadline_before': 'documentation_deadline__lte', - 'documentation_deadline_after': 'documentation_deadline__gte', - 'finds_deadline_before': 'finds_deadline__lte', - 'finds_deadline_after': 'finds_deadline__gte', - }, -) +get_operation = get_item(models.Operation, 'get_operation', 'operation') + show_operation = show_item(models.Operation, 'operation') revert_operation = revert_item(models.Operation) show_operationsource = show_item(models.OperationSource, 'operationsource') -get_operationsource = get_item( - models.OperationSource, - 'get_operationsource', 'operationsource', - bool_fields=['duplicate'], - extra_request_keys={ - 'title': 'title__icontains', - 'description': 'description__icontains', - 'comment': 'comment__icontains', - 'additional_information': 'additional_information__icontains', - 'person': 'authors__person__pk', - 'operation__towns': 'operation__towns__pk', - 'operation__operation_code': 'operation__operation_code', - 'operation__code_patriarche': 'operation__code_patriarche', - 'operation__operation_type': 'operation__operation_type__pk', - 'operation__year': 'operation__year'}) +get_operationsource = get_item(models.OperationSource, 'get_operationsource', + 'operationsource') get_administrativeactop = get_item( - models.AdministrativeAct, - 'get_administrativeactop', 'administrativeactop', - 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'), - 'parcel_2': ( - 'operation__parcels__public_domain', - 'operation__associated_file__parcels__public_domain'), - }, - reversed_bool_fields=['index__isnull'], - relative_session_names=[('operation', 'operation__pk')]) + models.AdministrativeAct, 'get_administrativeactop', 'administrativeactop') get_administrativeact = get_item( - models.AdministrativeAct, - 'get_administrativeact', 'administrativeact', - extra_request_keys={'year': 'signature_date__year', - 'indexed': 'index__isnull', - 'history_creator': - 'history_creator__ishtaruser__person__pk', - 'act_object': 'act_object__icontains', - 'operation__towns__numero_insee__startswith': - 'operation__towns__numero_insee__startswith', - 'operation__towns': 'operation__towns__pk'}, - reversed_bool_fields=['index__isnull'],) + models.AdministrativeAct, 'get_administrativeact', 'administrativeact') + show_administrativeact = show_item(models.AdministrativeAct, 'administrativeact') |