diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-02-13 13:23:29 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-02-13 13:23:29 +0100 |
commit | 29d066ec320727a28d887f32588fa1f2dcf36e08 (patch) | |
tree | aead69cdc27743add5535450c812c8ce9d440584 /ishtar_common/views_item.py | |
parent | a6d77a3a3358463c591900872a8ae62286f9509d (diff) | |
download | Ishtar-29d066ec320727a28d887f32588fa1f2dcf36e08.tar.bz2 Ishtar-29d066ec320727a28d887f32588fa1f2dcf36e08.zip |
Manage search on json fields - HistorySelect for all concerned forms
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 15 |
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 |