Ultron/ultron/profiles/views.py

45 lines
1.3 KiB
Python

"""Vues de gestion des profils utilisateurs."""
from django.contrib.auth.decorators import login_required
from django.contrib.auth import get_user_model
from django.db.models import Q
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import get_object_or_404, render
from django.views.decorators.http import require_http_methods
from .forms import ProfileForm
from .models import Profile
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("/")
else:
form = ProfileForm(instance=profile)
context = {
"form": form,
}
return render(request, "profiles/update.html", context)