From a2de2eb42009de3b8bf56f2af2a6071a4a98fd8f Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 14 Nov 2024 17:31:15 +0100 Subject: ✨ filter sheets by profile type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/models.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'ishtar_common/models.py') 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 -- cgit v1.2.3