From 3fe5b6e05599930073223428cd95ca710a45ad52 Mon Sep 17 00:00:00 2001 From: Lloyd Meins <git@lloydmeins.de> Date: Sun, 16 May 2021 14:31:28 +0200 Subject: [PATCH] Enable personal configuration of default in personal preferences --- aleksis/apps/alsijil/preferences.py | 8 ++++++++ aleksis/apps/alsijil/views.py | 11 +++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py index 3ad751865..e04e7c1da 100644 --- a/aleksis/apps/alsijil/preferences.py +++ b/aleksis/apps/alsijil/preferences.py @@ -124,3 +124,11 @@ class RegisterObjectsTableItemsPerPage(IntegerPreference): def validate(self, value): if value < 1: raise ValidationError(_("Each page must show at least one item.")) + + +@person_preferences_registry.register +class DefaultLessonDocumentationFilter(BooleanPreference): + section = alsijil + name = "default_lesson_documentation_filter" + default = True + verbose_name = _("Filter lessons by existence of their lesson documentation on default") diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index c691996fa..23c2810e7 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -946,11 +946,18 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp context["extra_marks"] = extra_marks # Build filter with own form and logic as django-filter can't work with different models + if request.user.person.preferences["alsijil__default_lesson_documentation_filter"]: + default_documentation = False + else: + default_documentation = None + filter_form = FilterRegisterObjectForm( - request, request.GET or None, for_person=True, default_documentation=False + request, request.GET or None, for_person=True, default_documentation=default_documentation ) filter_dict = ( - filter_form.cleaned_data if filter_form.is_valid() else {"has_documentation": False} + filter_form.cleaned_data + if filter_form.is_valid() + else {"has_documentation": default_documentation} ) filter_dict["person"] = person context["filter_form"] = filter_form -- GitLab