summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
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
commitf3bc312eccb7b03824915f7fd2918a0d247d90d8 (patch)
tree2b16e28b04695fa01e1fee0fad14c66cfbe6a526 /archaeological_operations
parent461e0320a8426fe82c4f6a7fd9cfa376c767fbdd (diff)
downloadIshtar-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.py131
-rw-r--r--archaeological_operations/views.py105
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')