summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-05-23 21:52:31 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-05-23 22:37:16 +0200
commit9122bc96d1c755e55b65b0f2d9c48f55965e61a9 (patch)
treec3a081cd292900bd1edd7ce5ab11296ab8981bae /ishtar_common/views_item.py
parent37f879d59734220e4760fda70ddacbf1629ff2bd (diff)
downloadIshtar-9122bc96d1c755e55b65b0f2d9c48f55965e61a9.tar.bz2
Ishtar-9122bc96d1c755e55b65b0f2d9c48f55965e61a9.zip
Search: fix manual sort with None value
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 9ec62f511..0cb61eee2 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -2148,7 +2148,26 @@ def get_item(
if type(col) in (list, tuple) and manual_sort_key in col:
idx_col = idx + 1
if idx_col is not None:
- datas = sorted(datas, key=lambda x: x[idx_col])
+ null_value = None
+ for d in datas:
+ if isinstance(d[idx_col], (int, float)):
+ null_value = 0
+ break
+ if isinstance(d[idx_col], str):
+ null_value = ""
+ break
+ if isinstance(d[idx_col], datetime.date):
+ null_value = datetime.date(1, 1, 1)
+ break
+ if isinstance(d[idx_col], datetime.datetime):
+ null_value = datetime.datetime(1, 1, 1)
+ break
+ if not null_value:
+ null_value = ""
+ datas = sorted(
+ datas,
+ key=lambda x: x[idx_col] if x[idx_col] is not None else null_value
+ )
if sign == "-":
datas = reversed(datas)
datas = list(datas)[start:end]