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, 15 insertions, 3 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 9263ae92a..b97cf77be 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -51,6 +51,7 @@ from django.db.models import (
from django.db.models.functions import ExtractYear
from django.db.utils import ProgrammingError
from django import forms
+from django.contrib.gis.geos import GEOSGeometry
from django.forms.models import model_to_dict
from django.http import HttpResponse, Http404
from django.shortcuts import render
@@ -2354,6 +2355,7 @@ def get_item(
no_limit=False,
return_query=False,
ishtaruser=None, # could be provided when request is None
+ col_types=None,
**dct,
):
available_perms = []
@@ -2527,7 +2529,11 @@ def get_item(
else:
request_keys[jfield.alt_name] = jkey + "__iexact"
if "query" in dct:
- request_items = dct["query"]
+ if isinstance(dct["query"], dict):
+ request_items = dct["query"]
+ else:
+ request_items = dct
+ request_items["search_vector"] = dct.pop("query")
request_items["submited"] = True
elif request and request.method == "POST":
request_items = request.POST
@@ -2537,12 +2543,14 @@ def get_item(
return HttpResponse(EMPTY, content_type="text/plain")
count = dct.get("count", False)
-
# pager
try:
row_nb = int(request_items.get("length"))
except (ValueError, TypeError):
- row_nb = DEFAULT_ROW_NUMBER
+ if "length" in dct:
+ row_nb = int(dct["length"])
+ else:
+ row_nb = DEFAULT_ROW_NUMBER
if data_type == "json-map": # other limit for map
row_nb = settings.ISHTAR_MAP_MAX_ITEMS
@@ -3107,6 +3115,8 @@ def get_item(
value = value.strftime("%Y-%m-%d")
if isinstance(value, datetime.datetime):
value = value.strftime("%Y-%m-%d %H:%M:%S")
+ if isinstance(value, GEOSGeometry):
+ value = value.ewkt
res[k] = value
if full == "shortcut":
if "cached_label" in res:
@@ -3141,6 +3151,8 @@ def get_item(
"recordsFiltered": items_nb,
"rows": rows,
"table-cols": table_cols,
+ "cols-name": col_names,
+ "cols-types": col_types,
"pinned-search": pinned_search,
"page": page_nb,
"total": total,