X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/37e278e43ece42375352c07d9f04991ef58d992c..676180ac8010d13370620a4889fb07ae6122a335:/src/accounts/views.py diff --git a/src/accounts/views.py b/src/accounts/views.py index b00dd20..1b4a705 100644 --- a/src/accounts/views.py +++ b/src/accounts/views.py @@ -1,41 +1,19 @@ -# Create your views here. -from django import http -from django.utils.translation import ugettext as __ -from django.views.generic.simple import direct_to_template -from django.views.decorators.http import require_POST -from django.contrib.auth.decorators import login_required -from accounts.forms import UserBasicForm, UserPasswordForm +from django.contrib.auth.mixins import LoginRequiredMixin +from django.contrib import messages +from django.utils.translation import gettext as _ +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 direct_to_template(request, "account/profile.html", { - "basic_form": basic_form or UserBasicForm(instance=request.user), - "pass_form": pass_form or UserPasswordForm(), - }) +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() - request.user.message_set.create(message=__("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() - - request.user.message_set.create(message=__("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