2022-12-18 17:21:52 +00:00
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
|
|
|
|
|
|
from core.forms import NotificationSettingsForm
|
|
|
|
from core.models import NotificationSettings
|
|
|
|
from core.views import ObjectUpdate
|
|
|
|
|
|
|
|
|
|
|
|
# Notifications - we create a new notification settings object if there isn't one
|
|
|
|
# Hence, there is only an update view, not a create view.
|
|
|
|
class NotificationsUpdate(LoginRequiredMixin, ObjectUpdate):
|
|
|
|
model = NotificationSettings
|
|
|
|
form_class = NotificationSettingsForm
|
|
|
|
|
2022-12-18 17:27:40 +00:00
|
|
|
page_title = "Update your notification settings."
|
|
|
|
page_subtitle = (
|
|
|
|
"At least the topic must be set if you want to receive notifications."
|
|
|
|
)
|
|
|
|
|
2022-12-18 17:21:52 +00:00
|
|
|
submit_url_name = "notifications_update"
|
|
|
|
submit_url_args = ["type"]
|
|
|
|
|
|
|
|
pk_required = False
|
|
|
|
|
2022-12-18 17:27:40 +00:00
|
|
|
hide_cancel = True
|
|
|
|
|
2022-12-18 17:21:52 +00:00
|
|
|
def get_object(self, **kwargs):
|
|
|
|
notification_settings, _ = NotificationSettings.objects.get_or_create(
|
|
|
|
user=self.request.user
|
|
|
|
)
|
|
|
|
return notification_settings
|