Jarvis/jarvis/profiles/views.py

94 lines
2.8 KiB
Python
Raw Normal View History

2023-04-25 17:06:14 +02:00
"""Vues de gestion des profils utilisateurs."""
from django.contrib.auth.decorators import login_required
from django.contrib.auth import get_user_model
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render, get_object_or_404
from django.views.decorators.http import require_http_methods
from django.urls import reverse
from .forms import ProfileForm
from .models import Profile # , Notification, FUNCTIONALITY_CHOICES
2023-04-25 17:06:14 +02:00
from jarvis.people.models import Gymnast
User = get_user_model()
@login_required
@require_http_methods(["GET", "POST"])
def profile_update(request):
"""Modification du profil de l'utilisateur connecté"""
try:
profile = request.user.profile
except Exception: # don't do this !
profile = Profile.objects.create(user=request.user)
if request.method == "POST":
form = ProfileForm(request.POST, instance=profile)
if form.is_valid():
form.save()
request.session["template"] = profile.template_color
request.session["sidebar"] = profile.sidebar_color
request.session["is_sidebar_minified"] = profile.is_sidebar_minified
return HttpResponseRedirect(reverse("home"))
else:
form = ProfileForm(instance=profile)
context = {
"form": form,
}
return render(request, "update.html", context)
# @login_required
# @require_http_methods(["GET", "POST"])
# def notification_update(request):
# gymnast_list = Gymnast.objects.filter(is_active=True)
# context = {
# "gymnast_list": gymnast_list,
# "functionality_list": FUNCTIONALITY_CHOICES,
# }
# return render(request, "notification_update.html", context)
# @require_http_methods(["POST"])
# def notification_add(request):
# """
# Ajoute une demande de notification
# """
# gymnast_id = request.POST.get("gymnast_id", None)
# notification_id = request.POST.get("notification_id", None)
# gymnast = get_object_or_404(Gymnast, pk=gymnast_id)
# row, created = Notification.objects.get_or_create(
# user=request.user, gymnast=gymnast, functionality=notification_id
# )
# if created:
# return HttpResponse(200, (row, created)) # devrait être un 201
# else:
# return HttpResponse(400, (row, created))
# @require_http_methods(["POST"])
# def notification_remove(request):
# """
# Supprime une demande de notification
# """
# gymnast_id = request.POST.get("gymnast_id", None)
# notification_id = request.POST.get("notification_id", None)
# try:
# Notification.objects.get(
# user=request.user, gymnast=gymnast_id, functionality=notification_id
# ).delete()
# except Exception:
# return HttpResponse(409)
# return HttpResponse(200)