From 246674b03e8ded7945bfa07b01e11737910da7b2 Mon Sep 17 00:00:00 2001 From: Mark Veidemanis Date: Sun, 18 Dec 2022 17:27:40 +0000 Subject: [PATCH] Hide the cancel button and add title/subtitle to notification page --- .../templates/window-content/object-form.html | 19 +++++++++++++------ core/views/__init__.py | 11 +++++++++++ core/views/notifications.py | 7 +++++++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/core/templates/window-content/object-form.html b/core/templates/window-content/object-form.html index 67f0c5a..bdfb43a 100644 --- a/core/templates/window-content/object-form.html +++ b/core/templates/window-content/object-form.html @@ -1,5 +1,10 @@ {% include 'partials/notify.html' %} - +{% if page_title is not None %} +

{{ page_title }}

+{% endif %} +{% if page_subtitle is not None %} +

{{ page_subtitle }}

+{% endif %} {% load crispy_forms_tags %} {% load crispy_forms_bulma_field %} @@ -10,11 +15,13 @@ hx-swap="innerHTML"> {% csrf_token %} {{ form|crispy }} - + {% if hide_cancel is not True %} + + {% endif %} diff --git a/core/views/__init__.py b/core/views/__init__.py index d67a5ce..95f20dd 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -341,6 +341,9 @@ class ObjectUpdate(RestrictedViewMixin, ObjectNameMixin, UpdateView): window_content = "window-content/object-form.html" parser_classes = [FormParser] + page_title = None + page_subtitle = None + model = None submit_url_name = None submit_url_args = ["type", "pk"] @@ -350,6 +353,9 @@ class ObjectUpdate(RestrictedViewMixin, ObjectNameMixin, UpdateView): # Whether pk is required in the get request pk_required = True + # Whether to hide the cancel button in the form + hide_cancel = False + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.title = "Update " + self.context_object_name_singular @@ -411,6 +417,11 @@ class ObjectUpdate(RestrictedViewMixin, ObjectNameMixin, UpdateView): context["context_object_name_singular"] = self.context_object_name_singular context["submit_url"] = submit_url context["type"] = type + context["hide_cancel"] = self.hide_cancel + if self.page_title: + context["page_title"] = self.page_title + if self.page_subtitle: + context["page_subtitle"] = self.page_subtitle response = self.render_to_response(context) # response["HX-Trigger"] = f"{self.context_object_name_singular}Event" return response diff --git a/core/views/notifications.py b/core/views/notifications.py index a94c71b..52c5aee 100644 --- a/core/views/notifications.py +++ b/core/views/notifications.py @@ -11,6 +11,11 @@ class NotificationsUpdate(LoginRequiredMixin, ObjectUpdate): model = NotificationSettings form_class = NotificationSettingsForm + page_title = "Update your notification settings." + page_subtitle = ( + "At least the topic must be set if you want to receive notifications." + ) + # list_url_name = "notifications" # list_url_args = ["type"] @@ -19,6 +24,8 @@ class NotificationsUpdate(LoginRequiredMixin, ObjectUpdate): pk_required = False + hide_cancel = True + def get_object(self, **kwargs): notification_settings, _ = NotificationSettings.objects.get_or_create( user=self.request.user