summaryrefslogtreecommitdiff
path: root/archaeological_finds
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_finds
parent461e0320a8426fe82c4f6a7fd9cfa376c767fbdd (diff)
downloadIshtar-f3bc312eccb7b03824915f7fd2918a0d247d90d8.tar.bz2
Ishtar-f3bc312eccb7b03824915f7fd2918a0d247d90d8.zip
Manage export with importer's templates (refs #3064)
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/models.py71
-rw-r--r--archaeological_finds/views.py83
2 files changed, 78 insertions, 76 deletions
diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py
index 5581df084..969e9b966 100644
--- a/archaeological_finds/models.py
+++ b/archaeological_finds/models.py
@@ -327,6 +327,46 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
'base_finds.discovery_date': _(u"Base find - Discovery date"),
}
ATTRS_EQUIV = {'get_first_base_find': 'base_finds'}
+
+ # search parameters
+ REVERSED_BOOL_FIELDS = ['image__isnull']
+ RELATION_TYPES_PREFIX = {
+ 'ope_relation_types':
+ 'base_finds__context_record__operation__'}
+ RELATIVE_SESSION_NAMES = [
+ ('contextrecord', 'base_finds__context_record__pk'),
+ ('operation', 'base_finds__context_record__operation__pk'),
+ ('file', 'base_finds__context_record__operation__associated_file__pk')
+ ]
+ BASE_REQUEST = {'downstream_treatment__isnull': True}
+ EXTRA_KEYS = {
+ 'base_finds__cache_short_id':
+ 'base_finds__cache_short_id__icontains',
+ 'base_finds__cache_complete_id':
+ 'base_finds__cache_complete_id__icontains',
+ 'label':
+ 'label__icontains',
+ 'base_finds__context_record':
+ 'base_finds__context_record__pk',
+ 'base_finds__context_record__parcel__town':
+ 'base_finds__context_record__parcel__town',
+ 'base_finds__context_record__operation__year':
+ 'base_finds__context_record__operation__year__contains',
+ 'base_finds__context_record__operation':
+ 'base_finds__context_record__operation__pk',
+ 'archaeological_sites':
+ 'base_finds__context_record__operation__archaeological_sites__pk',
+ 'base_finds__context_record__operation__code_patriarche':
+ 'base_finds__context_record__operation__code_patriarche',
+ 'datings__period': 'datings__period__pk',
+ 'base_finds__find__description':
+ 'base_finds__find__description__icontains',
+ 'base_finds__batch': 'base_finds__batch',
+ 'basket': 'basket',
+ 'cached_label': 'cached_label__icontains',
+ 'image': 'image__isnull'}
+
+ # fields
base_finds = models.ManyToManyField(BaseFind, verbose_name=_(u"Base find"),
related_name='find')
external_id = models.TextField(_(u"External ID"), blank=True, null=True)
@@ -679,6 +719,31 @@ class FindSource(Source):
'find__base_finds__context_record', 'find'] + \
Source.TABLE_COLS
+ # search parameters
+ BOOL_FIELDS = ['duplicate']
+ RELATIVE_SESSION_NAMES = [
+ ('find', 'find__pk'),
+ ('contextrecord', 'find__base_finds__context_record__pk'),
+ ('operation', 'find__base_finds__context_record__operation__pk'),
+ ('file',
+ 'find__base_finds__context_record__operation__associated_file__pk')
+ ]
+ EXTRA_REQUEST_KEYS = {
+ 'title': 'title__icontains',
+ 'description': 'description__icontains',
+ 'comment': 'comment__icontains',
+ 'additional_information': 'additional_information__icontains',
+ 'person': 'authors__person__pk',
+ 'find__base_finds__context_record__operation__year':
+ 'find__base_finds__context_record__operation__year',
+ 'find__base_finds__context_record__operation__operation_code':
+ 'find__base_finds__context_record__operation__operation_code',
+ 'find__base_finds__context_record__operation__code_patriarche':
+ 'find__base_finds__context_record__operation__code_patriarche',
+ 'find__datings__period': 'find__datings__period__pk',
+ 'find__description': 'find__description__icontains',
+ }
+
class Meta:
verbose_name = _(u"Find documentation")
verbose_name_plural = _(u"Find documentations")
@@ -846,6 +911,9 @@ class FindUpstreamTreatments(AbsFindTreatments):
'treatment__location', 'treatment__container',
'treatment__person', 'treatment_nb']
+ # search parameters
+ EXTRA_REQUEST_KEYS = {'find_id': 'find_id'}
+
class Meta:
managed = False
db_table = 'find_uptreatments'
@@ -887,6 +955,9 @@ class FindDownstreamTreatments(AbsFindTreatments):
'treatment__location', 'treatment__container',
'treatment__person', 'treatment_nb']
+ # search parameters
+ EXTRA_REQUEST_KEYS = {'find_id': 'find_id'}
+
class Meta:
managed = False
db_table = 'find_downtreatments'
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index d441559cc..89babe9b7 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -40,81 +40,14 @@ from wizards import *
from forms import *
import models
-find_extra_keys = {
- 'base_finds__cache_short_id':
- 'base_finds__cache_short_id__icontains',
- 'base_finds__cache_complete_id':
- 'base_finds__cache_complete_id__icontains',
- 'label':
- 'label__icontains',
- 'base_finds__context_record':
- 'base_finds__context_record__pk',
- 'base_finds__context_record__parcel__town':
- 'base_finds__context_record__parcel__town',
- 'base_finds__context_record__operation__year':
- 'base_finds__context_record__operation__year__contains',
- 'base_finds__context_record__operation':
- 'base_finds__context_record__operation__pk',
- 'archaeological_sites':
- 'base_finds__context_record__operation__archaeological_sites__pk',
- 'base_finds__context_record__operation__code_patriarche':
- 'base_finds__context_record__operation__code_patriarche',
- 'datings__period': 'datings__period__pk',
- 'base_finds__find__description':
- 'base_finds__find__description__icontains',
- 'base_finds__batch': 'base_finds__batch',
- 'basket': 'basket',
- 'cached_label': 'cached_label__icontains',
- 'image': 'image__isnull'}
-
-get_find = get_item(
- models.Find, 'get_find', 'find',
- reversed_bool_fields=['image__isnull'],
- relation_types_prefix={
- 'ope_relation_types':
- 'base_finds__context_record__operation__'},
- relative_session_names=[
- ('contextrecord', 'base_finds__context_record__pk'),
- ('operation', 'base_finds__context_record__operation__pk'),
- ('file', 'base_finds__context_record__operation__associated_file__pk')
- ],
- base_request={'downstream_treatment__isnull': True},
- extra_request_keys=find_extra_keys.copy())
-
-get_find_for_ope = get_item(
- models.Find, 'get_find', 'find',
- reversed_bool_fields=['image__isnull'],
- base_request={'downstream_treatment__isnull': True},
- extra_request_keys=find_extra_keys.copy(),
- own_table_cols=models.Find.TABLE_COLS_FOR_OPE)
+get_find = get_item(models.Find, 'get_find', 'find')
+
+get_find_for_ope = get_item(models.Find, 'get_find', 'find',
+ own_table_cols=models.Find.TABLE_COLS_FOR_OPE)
show_findsource = show_item(models.FindSource, 'findsource')
-get_findsource = get_item(
- models.FindSource, 'get_findsource', 'findsource',
- bool_fields=['duplicate'],
- relative_session_names=[
- ('find', 'find__pk'),
- ('contextrecord', 'find__base_finds__context_record__pk'),
- ('operation', 'find__base_finds__context_record__operation__pk'),
- ('file',
- 'find__base_finds__context_record__operation__associated_file__pk')
- ],
- extra_request_keys={
- 'title': 'title__icontains',
- 'description': 'description__icontains',
- 'comment': 'comment__icontains',
- 'additional_information': 'additional_information__icontains',
- 'person': 'authors__person__pk',
- 'find__base_finds__context_record__operation__year':
- 'find__base_finds__context_record__operation__year',
- 'find__base_finds__context_record__operation__operation_code':
- 'find__base_finds__context_record__operation__operation_code',
- 'find__base_finds__context_record__operation__code_patriarche':
- 'find__base_finds__context_record__operation__code_patriarche',
- 'find__datings__period': 'find__datings__period__pk',
- 'find__description': 'find__description__icontains',
- })
+get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource')
show_find = show_item(models.Find, 'find')
revert_find = revert_item(models.Find)
@@ -343,13 +276,11 @@ class DeleteFindBasketView(IshtarMixin, LoginRequiredMixin, FormView):
return HttpResponseRedirect(self.get_success_url())
get_upstreamtreatment = get_item(
- models.FindUpstreamTreatments, 'get_upstreamtreatment', 'uptreatment',
- extra_request_keys={'find_id': 'find_id'})
+ models.FindUpstreamTreatments, 'get_upstreamtreatment', 'uptreatment')
get_downstreamtreatment = get_item(
models.FindDownstreamTreatments, 'get_downstreamtreatment',
- 'downtreatment',
- extra_request_keys={'find_id': 'find_id'})
+ 'downtreatment')
treatment_creation_wizard = TreatmentWizard.as_view([
('basetreatment-treatment_creation', BaseTreatmentForm),