diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-11-15 11:51:49 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:45:55 +0100 |
commit | f3764eea1ac4a6cdb12095322a00fd93d377c2c5 (patch) | |
tree | 878cc3ba5ce98d1d7ed28e264d54f4ca4efbdf0d /ishtar_common/views_item.py | |
parent | a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f (diff) | |
download | Ishtar-f3764eea1ac4a6cdb12095322a00fd93d377c2c5.tar.bz2 Ishtar-f3764eea1ac4a6cdb12095322a00fd93d377c2c5.zip |
✨ adapt sheet to manage sheet filters
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 9570687bf..639af1e88 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -386,11 +386,13 @@ def filter_sheet(ishtar_user, item): if exclude is None: return item base_keys = [ - "id", "pk", "locked", "is_locked", "SLUG", "APP", "MODEL", - "HAS_QR_CODE", "get_absolute_url", "get_extra_actions", - "get_extra_templates", "can_edit", "can_delete", "DELETE_URL" + "SLUG", "APP", "MODEL", "DELETE_URL" "HAS_QR_CODE", + "id", "pk", "app_label", "model_name", "locked", "is_locked", + "get_absolute_url", "get_extra_actions", "get_extra_templates", + "can_edit", "can_delete" ] base_keys += getattr(item, "SHEET_BASE_KEYS", []) + empty_keys = getattr(item, "SHEET_EMPTY_KEYS", []) if exclude: # cannot exclude base keys len_keys = len(keys) @@ -401,9 +403,14 @@ def filter_sheet(ishtar_user, item): keys += base_keys if exclude: for key in keys: - setattr(item, key, None) + try: + setattr(item, key, None) + except TypeError: + pass return item new_item = type("BaseObject", (object,), {}) + for empty_key in empty_keys: + setattr(new_item, empty_key, None) for key in keys: setattr(new_item, key, getattr(item, key, None)) return new_item |