示例#1
0
文件: settings.py 项目: fk-lx/mygpo
    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')
示例#2
0
    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')
示例#3
0
    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')
示例#4
0
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,
    })