summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 1a0824c3b..65f06d2f1 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1000,7 +1000,7 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
relative_session_names=None, specific_perms=None,
own_table_cols=None, relation_types_prefix=None,
do_not_deduplicate=False, model_for_perms=None,
- alt_query_own=None):
+ alt_query_own=None, search_form=None):
"""
Generic treatment of tables
@@ -1022,6 +1022,7 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
instance for record_relations view).
:param model_for_perms: use another model to check permission
:param alt_query_own: name of alternate method to get query_own
+ :param search_form: associated search form to manage JSON query keys
:return:
"""
def func(request, data_type='json', full=False, force_own=False,
@@ -1140,6 +1141,18 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
for field in associated_fields]))
request_keys.update(my_extra_request_keys)
+ # manage search on json fields and excluded fields
+ if search_form and request.user and getattr(
+ request.user, 'ishtaruser', None):
+ available, excluded_fields, json_fields = \
+ search_form.check_custom_form(request.user.ishtaruser)
+ # for now no manage on excluded_fields: should we prevent search on
+ # some fields regarding the user concerned?
+ if available:
+ for __, jkey, jfield in json_fields:
+ if jfield.alt_name not in request_keys:
+ request_keys[jfield.alt_name] = jkey + "__iexact"
+
if "query" in dct:
request_items = dct["query"]
request_items["submited"] = True