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.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index f330e26b7..62aff2e81 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1298,7 +1298,8 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
:return:
"""
def func(request, data_type='json', full=False, force_own=False,
- col_names=None, no_link=False, no_limit=False, **dct):
+ col_names=None, no_link=False, no_limit=False, return_query=False,
+ **dct):
available_perms = []
if specific_perms:
available_perms = specific_perms[:]
@@ -1321,8 +1322,11 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
if model_for_perms:
model_to_check = model_for_perms
- allowed, own = check_model_access_control(request, model_to_check,
- available_perms)
+ if return_query:
+ allowed, own = True, False
+ else:
+ allowed, own = check_model_access_control(request, model_to_check,
+ available_perms)
if not allowed:
return HttpResponse(EMPTY, content_type='text/plain')
@@ -1425,7 +1429,7 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
request_keys.update(my_extra_request_keys)
# manage search on json fields and excluded fields
- if search_form and request.user and getattr(
+ if search_form and request and request.user and getattr(
request.user, 'ishtaruser', None):
available, excluded_fields, json_fields = \
search_form.check_custom_form(request.user.ishtaruser)
@@ -1531,7 +1535,7 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
dct, pinned_search = _manage_default_search(
dct, request, model, default_name, my_base_request,
my_relative_session_names)
- elif func_name:
+ elif func_name and request:
request.session[func_name] = dct
for k in request_keys:
@@ -1633,6 +1637,10 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
for extra in extras:
items = items.extra(**extra)
+
+ if return_query:
+ return items
+
items = items.distinct()
items_nb = items.values('pk').aggregate(Count('pk'))['pk__count']