diff options
-rw-r--r-- | archaeological_context_records/views.py | 7 | ||||
-rw-r--r-- | archaeological_files/views.py | 2 | ||||
-rw-r--r-- | archaeological_finds/views.py | 12 | ||||
-rw-r--r-- | archaeological_operations/views.py | 3 | ||||
-rw-r--r-- | ishtar_common/views.py | 10 |
5 files changed, 28 insertions, 6 deletions
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 4fd945187..5c8bb63cc 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -81,6 +81,9 @@ get_contextrecord = get_item( models.ContextRecord, 'get_contextrecord', 'contextrecord', relation_types_prefix={'ope_relation_types': 'operation__'}, + relative_session_names=[ + ('operation', 'operation__pk'), + ('file', 'operation__associated_file__pk')], extra_request_keys=contextrecord_extra_keys,) get_contextrecord_for_ope = get_item( models.ContextRecord, @@ -94,6 +97,10 @@ show_contextrecordsource = show_item(models.ContextRecordSource, get_contextrecordsource = get_item( models.ContextRecordSource, 'get_contextrecordsource', 'contextrecordsource', + relative_session_names=[ + ('contextrecord', 'context_record__pk'), + ('operation', 'context_record__operation__pk'), + ('file', 'context_record__operation__associated_file__pk')], bool_fields=['duplicate'], extra_request_keys={ 'title': 'title__icontains', diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 7e96c33d3..e457c2ce7 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -143,7 +143,7 @@ get_administrativeactfile = get_item( 'associated_file__permit_reference__icontains'}, reversed_bool_fields=['index__isnull'], base_request={"associated_file__pk__isnull": False}, - relative_session_names={'file': 'associated_file__pk'}) + relative_session_names=[('file', 'associated_file__pk')]) def dashboard_file(request, *args, **kwargs): diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 57b2b7665..80cc6fd8c 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -72,6 +72,11 @@ get_find = get_item( 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()) @@ -87,6 +92,13 @@ 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', diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index b47623fc2..6c7fdbd98 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -145,6 +145,7 @@ get_operation = get_item( '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', 'comment': 'comment__icontains', @@ -224,7 +225,7 @@ get_administrativeactop = get_item( 'operation__associated_file__parcels__public_domain'), }, reversed_bool_fields=['index__isnull'], - relative_session_names={'operation': 'operation__pk'}) + relative_session_names=[('operation', 'operation__pk')]) get_administrativeact = get_item( models.AdministrativeAct, diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 50c647372..d55181067 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -578,6 +578,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], reqs = reqs | q and_reqs.append(reqs) if 'submited' not in request_items: + # default search + # an item is selected in the default menu if default_name in request.session and \ request.session[default_name]: value = request.session[default_name] @@ -586,11 +588,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[], request.session[default_name].split('-')[-1]} else: dct = {"pk": request.session[default_name]} - elif not dct: - for name in relative_session_names.keys(): + elif dct == base_request: + # a parent item may be selected in the default menu + for name, key in relative_session_names: if name in request.session and request.session[name]: - k = relative_session_names[name] - dct = {k: request.session[name]} + dct.update({key: request.session[name]}) break if (not dct or data_type == 'csv') \ and func_name in request.session: |