summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-05-21 14:10:15 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:28 +0200
commite1add4422cd9801a2683b4c9f68b2e9e60a9f28a (patch)
tree8d42915f90dc0a3b575604560c5521211f1d7567 /ishtar_common/views_item.py
parent2b1f1b5e2473f824acf804a0d8ed398721b05104 (diff)
downloadIshtar-e1add4422cd9801a2683b4c9f68b2e9e60a9f28a.tar.bz2
Ishtar-e1add4422cd9801a2683b4c9f68b2e9e60a9f28a.zip
Optimize tables query for operations and sites
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 000b17a33..80975eb0a 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1101,7 +1101,7 @@ def _format_geojson(rows, link_template):
return data
-def _get_data_from_query(items, query_table_cols, request, extra_request_keys,
+def _get_data_from_query(items, query_table_cols, extra_request_keys,
point_field=None):
for query_keys in query_table_cols:
if not isinstance(query_keys, (tuple, list)):
@@ -1615,7 +1615,6 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
for extra in extras:
items = items.extra(**extra)
-
items = items.distinct()
items_nb = items.values('id').aggregate(Count('id'))['id__count']
@@ -1784,8 +1783,11 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
if data_type == 'json-map':
point_field = query_table_cols.pop()
datas = _get_data_from_query(
- items, query_table_cols, request, my_extra_request_keys,
+ items, query_table_cols, my_extra_request_keys,
point_field=point_field)
+ elif getattr(model, "NEW_QUERY_ENGINE", False):
+ datas = _get_data_from_query(
+ items, query_table_cols, my_extra_request_keys)
else:
datas = _get_data_from_query_old(
items, query_table_cols, request, my_extra_request_keys,
@@ -1851,6 +1853,10 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
k = "__".join(tab_cols)
if hasattr(model, 'COL_LINK') and k in model.COL_LINK:
value = link_ext_template.format(value, value)
+ if isinstance(value, datetime.date):
+ value = value.strftime('%Y-%m-%d')
+ if isinstance(value, datetime.datetime):
+ value = value.strftime('%Y-%m-%d %H:%M:%S')
res[k] = value
if full == 'shortcut':
if 'cached_label' in res: