summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-14 17:31:15 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:45:55 +0100
commita2de2eb42009de3b8bf56f2af2a6071a4a98fd8f (patch)
tree6fff18a18e727775fd9fa497577a2c22bb113cf8 /ishtar_common/models.py
parent87502f2d4c71663771ee98d5b32ad7179610c1d7 (diff)
downloadIshtar-a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f.tar.bz2
Ishtar-a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f.zip
✨ filter sheets by profile type
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 8542c8963..f46331eb5 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -406,7 +406,7 @@ class HistoryModel(models.Model):
if not models.endswith(".models"):
models += ".models"
models = import_module(models)
- model = getattr(models, self.__class__.__name__[len("Historical") :])
+ model = getattr(models, self.__class__.__name__[len("Historical"):])
field = getattr(model, key)
if hasattr(field, "rel"):
field = field.rel
@@ -3456,6 +3456,21 @@ class ProfileType(GeneralType):
ordering = ("label",)
ADMIN_SECTION = _("Account")
+ def get_filters(self, model_class):
+ """
+ Return (exclude (True if exclude, False for include), key list)
+ """
+ q = self.filtered_sheets.filter(
+ content_type=ContentType.objects.get_for_model(model_class)
+ )
+ if not q.count():
+ return (None, None)
+ filter_sheet = q.all()[0]
+ return (
+ filter_sheet.exclude_or_include == "E",
+ list(filter_sheet.filters.values_list("key", flat=True))
+ )
+
def clean_groups(self):
"""
Remove "own" groups if generic group is associated