diff options
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 |
commit | a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f (patch) | |
tree | 6fff18a18e727775fd9fa497577a2c22bb113cf8 /ishtar_common/models.py | |
parent | 87502f2d4c71663771ee98d5b32ad7179610c1d7 (diff) | |
download | Ishtar-a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f.tar.bz2 Ishtar-a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f.zip |
✨ filter sheets by profile type
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 17 |
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 |