from django.contrib import messages from django.contrib.auth.decorators import login_required from django.http import HttpRequest from django.shortcuts import render, redirect from django.utils.translation import gettext_lazy as _ from konova.contexts import BaseContext from user.forms import UserNotificationForm from user.models import KonovaUserExtension @login_required def index_view(request: HttpRequest): """ Renders the user's data index view Args: request (): Returns: """ template = "user/index.html" context = { "user": request.user, } context = BaseContext(request, context).context return render(request, template, context) @login_required def notifications_view(request: HttpRequest): """ Renders the notifications settings view Args: request (): Returns: """ template = "user/notifications.html" user = request.user konova_ext = KonovaUserExtension.objects.get_or_create( user=user )[0] form = UserNotificationForm(user=user, data=request.POST or None) if request.method == "POST": if form.is_valid(): form.save() messages.success( request, _("Notifications edited") ) return redirect("user:index") elif request.method == "GET": # Implicit pass else: raise NotImplementedError context = { "user": user, "form": form, "konova_ext": konova_ext, } context = BaseContext(request, context).context return render(request, template, context)