diff options
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 | 
