def post(self, request): user = request.user form = FlattrForm(request.POST) if not form.is_valid(): raise ValueError('asdf') auto_flattr = form.cleaned_data.get('enable', False) flattr_mygpo = form.cleaned_data.get('flattr_mygpo', False) username = form.cleaned_data.get('username', '') update_flattr_settings(user, None, auto_flattr, flattr_mygpo, username) return HttpResponseRedirect(reverse('account') + '#flattr')
def post(self, request): user = request.user form = FlattrForm(request.POST) if not form.is_valid(): raise ValueError('asdf') auto_flattr = form.cleaned_data.get('enable', False) flattr_mygpo = form.cleaned_data.get('flattr_mygpo', False) username = form.cleaned_data.get('username', '') settings = user.profile.settings settings.set_wksetting(FLATTR_AUTO, auto_flattr) settings.set_wksetting(FLATTR_MYGPO, flattr_mygpo) settings.set_wksetting(FLATTR_USERNAME, username) settings.save() return HttpResponseRedirect(reverse('account') + '#flattr')
def account(request): if request.method == 'GET': site = RequestSite(request) flattr = Flattr(request.user, site.domain, request.is_secure()) userpage_token = request.user.profile.get_token('userpage_token') profile_form = ProfileForm({ 'twitter': request.user.profile.twitter, 'about': request.user.profile.about, }) form = UserAccountForm({ 'email': request.user.email, 'public': request.user.profile.settings.get_wksetting(PUBLIC_SUB_USER) }) flattr_form = FlattrForm({ 'enable': request.user.profile.settings.get_wksetting(FLATTR_AUTO), 'token': request.user.profile.settings.get_wksetting(FLATTR_TOKEN), 'flattr_mygpo': request.user.profile.settings.get_wksetting(FLATTR_MYGPO), 'username': request.user.profile.settings.get_wksetting(FLATTR_USERNAME), }) return render( request, 'account.html', { 'site': site, 'form': form, 'profile_form': profile_form, 'flattr_form': flattr_form, 'flattr': flattr, 'userpage_token': userpage_token, }) try: form = UserAccountForm(request.POST) if not form.is_valid(): raise ValueError( _('Oops! Something went wrong. Please double-check the data you entered.' )) if form.cleaned_data['password_current']: if not request.user.check_password( form.cleaned_data['password_current']): raise ValueError('Current password is incorrect') request.user.set_password(form.cleaned_data['password1']) request.user.email = form.cleaned_data['email'] try: request.user.save() except Exception as ex: # TODO: which exception? messages.error(request, str(ex)) messages.success(request, 'Account updated') except (ValueError, ValidationError) as e: messages.error(request, str(e)) return render(request, 'account.html', { 'form': form, })