summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-10 13:38:42 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-10 13:38:42 +0200
commit1d5254416b11ef1010d5ac31f2a53677254c6497 (patch)
treea445b831d1646d990d8ed2c194f047fa9f4724e7 /ishtar_common/views_item.py
parent1c0fc5949bd107086a50fe326b7645e362687598 (diff)
downloadIshtar-1d5254416b11ef1010d5ac31f2a53677254c6497.tar.bz2
Ishtar-1d5254416b11ef1010d5ac31f2a53677254c6497.zip
Locks: lock_user in model - display lock icon on tables, links - add a warning on sheet
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 62aff2e81..2c4cc1a55 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1146,6 +1146,8 @@ def _get_data_from_query(items, query_table_cols, extra_request_keys,
items = items.annotate(point_x=exp_x)
items = items.annotate(point_y=exp_y)
values += ['point_x', 'point_y']
+ if hasattr(items.model, "locked"):
+ values.append("locked")
data_list = items.values_list(*values)
return data_list
@@ -1838,17 +1840,22 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
if sign == '-':
datas = reversed(datas)
datas = list(datas)[start:end]
- link_template = "<a class='display_details' href='#' " \
- "onclick='load_window(\"%s\")'>" \
- "<i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i></a>"
- link_ext_template = '<a href="{}" target="_blank">{}</a>'
+ link_template = \
+ "<a class='display_details' href='#' " \
+ "onclick='load_window(\"{}\")'>" \
+ "<i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i><lock></a>"
+ link_ext_template = '<a href="{}" target="_blank"></a>'
+ lock = '&nbsp;<i class="fa fa-lock text-danger" aria-hidden="true"></i>'
+ has_locks = hasattr(model, "locked")
if data_type.startswith("json"):
rows = []
if data_type == 'json-map':
-
- lnk = link_template % reverse('show-' + default_name,
- args=[999999, ''])
+ lnk = link_template.format(
+ reverse('show-' + default_name, args=[999999, '']),
+ )
lnk = lnk.replace('999999', "<pk>")
+ if not has_locks:
+ lnk = lnk.replace('<lock>', "")
data = json.dumps(_format_geojson(datas, lnk))
return HttpResponse(data, content_type='application/json')
for data in datas:
@@ -1858,8 +1865,12 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
if not no_link:
try:
lnk_template = link_template
- lnk = lnk_template % reverse('show-' + default_name,
- args=[data[0], ''])
+ lnk = lnk_template.format(
+ reverse('show-' + default_name, args=[data[0], '']))
+ if has_locks and data[-1]:
+ lnk = lnk.replace('<lock>', lock)
+ else:
+ lnk = lnk.replace('<lock>', "")
except NoReverseMatch:
logger.warning(
'**WARN "show-' + default_name + '" args ('
@@ -1867,7 +1878,7 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
lnk = ''
res["link"] = lnk
for idx, value in enumerate(data[1:]):
- if not value:
+ if not value or idx >= len(table_cols):
continue
table_col = table_cols[idx]
if type(table_col) not in (list, tuple):