diff options
author | Jef van Schendel <mail@jefvanschendel.nl> | 2012-01-05 00:17:45 +0100 |
---|---|---|
committer | Jef van Schendel <mail@jefvanschendel.nl> | 2012-01-05 00:17:45 +0100 |
commit | c8071fa591ad148fbffdabc4d6dd71f5666c2172 (patch) | |
tree | a8b59d2c3a88d8df6aa2086ca79940897ea715ed /mediagoblin/edit | |
parent | 9c196287ad26f52acb38d6c37560848da23151a6 (diff) | |
download | mediagoblin-c8071fa591ad148fbffdabc4d6dd71f5666c2172.tar.lz mediagoblin-c8071fa591ad148fbffdabc4d6dd71f5666c2172.tar.xz mediagoblin-c8071fa591ad148fbffdabc4d6dd71f5666c2172.zip |
Create edit_account.html
Diffstat (limited to 'mediagoblin/edit')
-rw-r--r-- | mediagoblin/edit/forms.py | 23 | ||||
-rw-r--r-- | mediagoblin/edit/routing.py | 5 | ||||
-rw-r--r-- | mediagoblin/edit/views.py | 40 |
3 files changed, 47 insertions, 21 deletions
diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 406de3f8..df219011 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -37,7 +37,7 @@ class EditForm(wtforms.Form): _('Slug'), [wtforms.validators.Required(message=_("The slug can't be empty"))], description=_( - "The title part of this media's URL. " + "The title part of this media's address. " "You usually don't need to change this.")) @@ -52,20 +52,19 @@ class EditProfileForm(wtforms.Form): url = wtforms.TextField( _('Website'), [wtforms.validators.Optional(), - wtforms.validators.URL(message='Improperly formed URL')]) + wtforms.validators.URL(message="""This address contains errors""")]) + + +class EditAccountForm(wtforms.Form): old_password = wtforms.PasswordField( _('Old password'), - [wtforms.validators.Optional()]) + [wtforms.validators.Required()], + description=_( + "Enter your old password to prove you own this account.")) new_password = wtforms.PasswordField( - _('New Password'), - [wtforms.validators.Optional(), - wtforms.validators.Length(min=6, max=30), - wtforms.validators.EqualTo( - 'confirm_password', - 'Passwords must match.')]) - confirm_password = wtforms.PasswordField( - 'Confirm password', - [wtforms.validators.Optional()]) + _('New password'), + [wtforms.validators.Required(), + wtforms.validators.Length(min=6, max=30)]) class EditAttachmentsForm(wtforms.Form): diff --git a/mediagoblin/edit/routing.py b/mediagoblin/edit/routing.py index 34e9fd80..5216f7ca 100644 --- a/mediagoblin/edit/routing.py +++ b/mediagoblin/edit/routing.py @@ -20,4 +20,7 @@ from routes.route import Route edit_routes = [ # Media editing view handled in user_pages/routing.py Route('mediagoblin.edit.profile', '/profile/', - controller="mediagoblin.edit.views:edit_profile")] + controller="mediagoblin.edit.views:edit_profile"), + Route('mediagoblin.edit.account', '/account/', + controller="mediagoblin.edit.views:edit_account") + ] diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 4cb98c15..bae85c5d 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -162,6 +162,35 @@ def edit_profile(request): bio=user.get('bio')) if request.method == 'POST' and form.validate(): + user.url = unicode(request.POST['url']) + user.bio = unicode(request.POST['bio']) + + user.bio_html = cleaned_markdown_conversion(user['bio']) + + user.save() + + messages.add_message(request, + messages.SUCCESS, + _("Profile changes saved")) + return redirect(request, + 'mediagoblin.user_pages.user_home', + user=user['username']) + + return render_to_response( + request, + 'mediagoblin/edit/edit_profile.html', + {'user': user, + 'form': form}) + + +@require_active_login +def edit_account(request): + edit_username = request.GET.get('username') + user = request.user + + form = forms.EditAccountForm(request.POST) + + if request.method == 'POST' and form.validate(): password_matches = auth_lib.bcrypt_check_password( request.POST['old_password'], user['pw_hash']) @@ -172,30 +201,25 @@ def edit_profile(request): return render_to_response( request, - 'mediagoblin/edit/edit_profile.html', + 'mediagoblin/edit/edit_account.html', {'user': user, 'form': form}) - user.url = unicode(request.POST['url']) - user.bio = unicode(request.POST['bio']) - if password_matches: user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['new_password']) - user.bio_html = cleaned_markdown_conversion(user['bio']) - user.save() messages.add_message(request, messages.SUCCESS, - _("Profile edited!")) + _("Account settings saved")) return redirect(request, 'mediagoblin.user_pages.user_home', user=user['username']) return render_to_response( request, - 'mediagoblin/edit/edit_profile.html', + 'mediagoblin/edit/edit_account.html', {'user': user, 'form': form}) |