X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/a6bc469288a27a94f4c062a33701b7a57746dbb7..414d3b57a727f9edc1663a9542d47392cb3cce6e:/src/accounts/views.py?ds=sidebyside diff --git a/src/accounts/views.py b/src/accounts/views.py index 9a95608..2b049e4 100644 --- a/src/accounts/views.py +++ b/src/accounts/views.py @@ -1,46 +1,19 @@ -# Create your views here. -from django import http -from django.contrib.auth.decorators import login_required -from django.contrib.auth import update_session_auth_hash +from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib import messages -from django.shortcuts import render from django.utils.translation import ugettext as _ -from django.views.decorators.http import require_POST -from accounts.forms import UserBasicForm, UserPasswordForm -from .models import Service +from django.views.generic.edit import UpdateView +from accounts.forms import UserBasicForm -@login_required -def account_profile(request, basic_form=None, pass_form=None): - return render(request, "account/profile.html", { - "basic_form": basic_form or UserBasicForm(instance=request.user), - "pass_form": pass_form or UserPasswordForm(), - "services": Service.objects.all(), - }) +class ProfileView(LoginRequiredMixin, UpdateView): + form_class = UserBasicForm + template_name = "account/profile.html" + success_url = '/accounts/' -@require_POST -@login_required -def account_change_basic_profile(request): - form = UserBasicForm(request.POST, instance=request.user) + def get_object(self): + return self.request.user - if form.is_valid(): - form.save() - messages.add_message(request, messages.INFO, _("Profile has been changed.")) - return http.HttpResponseRedirect('/accounts/') - - return account_profile(request, basic_form=form) - -@require_POST -@login_required -def account_change_password(request): - form = UserPasswordForm(request.POST) - - if form.is_valid(): - request.user.set_password(form.cleaned_data['new_password']) - request.user.save() - update_session_auth_hash(request, request.user) - - messages.add_message(request, messages.INFO, _("Password has been changed.")) - return http.HttpResponseRedirect('/accounts/') - - return account_profile(request, pass_form=form) + def form_valid(self, form): + retval = super().form_valid(form) + messages.add_message(self.request, messages.INFO, _("Profile has been changed.")) + return retval