diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/views_item.py | 21 | 
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]  | 
