diff options
Diffstat (limited to 'ishtar_common/views_item.py')
| -rw-r--r-- | ishtar_common/views_item.py | 17 | 
1 files changed, 14 insertions, 3 deletions
| diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 854c91ce5..85ef5339a 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -12,7 +12,6 @@ from tempfile import NamedTemporaryFile  from django.conf import settings  from django.contrib.gis.geos import GEOSException -from django.contrib.postgres.search import SearchQuery  from django.contrib.staticfiles.templatetags.staticfiles import static  from django.core.exceptions import ObjectDoesNotExist  from django.core.urlresolvers import reverse, NoReverseMatch @@ -821,14 +820,22 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                         (hasattr(field, 'rel') and field.rel and '__pk' or ''))                        for field in associated_fields]))          request_keys.update(my_extra_request_keys) -        request_items = request.method == 'POST' and request.POST \ -                        or request.GET + +        if "query" in dct: +            request_items = dct["query"] +        elif request.method == 'POST': +            request_items = request.POST +        else: +            request_items = request.GET + +        count = dct.get('count', False)          # pager          try:              row_nb = int(request_items.get('length'))          except (ValueError, TypeError):              row_nb = DEFAULT_ROW_NUMBER +          dct_request_items = {}          # filter requested fields @@ -839,6 +846,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],              if key.startswith('searchprefix_'):                  key = key[len('searchprefix_'):]              dct_request_items[key] = request_items[k] +          request_items = dct_request_items          dct = my_base_request @@ -985,6 +993,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[],              items = items.extra(**extra)          items = items.distinct() + +        if count: +            return items.count()          # print(items.query)          if search_vector:  # for serialization | 
