[arch-general] [PATCH 3/3] Adding changing of user profile details
Angel Velasquez
angvp at archlinux.org
Fri Sep 17 16:35:24 EDT 2010
The idea of this patch is allow to the dev's who have an account, to
change their data without asking some admin to do it for them.
Signed-off-by: Angel Velasquez <angvp at archlinux.org>
---
devel/views.py | 16 +++++++++++-----
templates/devel/profile.html | 3 +++
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/devel/views.py b/devel/views.py
index c974806..a2dd0e3 100644
--- a/devel/views.py
+++ b/devel/views.py
@@ -53,7 +53,6 @@ def change_notify(request):
return HttpResponseRedirect('/devel/')
class ProfileForm(forms.Form):
- email = forms.EmailField(label='E-mail Address')
passwd1 = forms.CharField(label='New Password', required=False,
widget=forms.PasswordInput)
passwd2 = forms.CharField(label='Confirm Password', required=False,
@@ -64,20 +63,27 @@ class ProfileForm(forms.Form):
raise forms.ValidationError('Passwords do not match.')
return self.cleaned_data
+class UserProfileForm(forms.ModelForm):
+ class Meta:
+ model = UserProfile
+ exclude = ['allowed_repos', 'user']
+
@login_required
@never_cache
def change_profile(request):
if request.POST:
form = ProfileForm(request.POST)
- if form.is_valid():
- request.user.email = form.cleaned_data['email']
+ profile_form = UserProfileForm(data=request.POST, instance=request.user.get_profile())
+ if form.is_valid() and profile_form.is_valid():
if form.cleaned_data['passwd1']:
request.user.set_password(form.cleaned_data['passwd1'])
request.user.save()
+ profile_form.save()
return HttpResponseRedirect('/devel/')
else:
- form = ProfileForm(initial={'email': request.user.email})
- return direct_to_template(request, 'devel/profile.html', {'form': form})
+ form = ProfileForm()
+ profile_form = UserProfileForm(instance=request.user.get_profile())
+ return direct_to_template(request, 'devel/profile.html', {'form': form, 'profile_form': profile_form})
@login_required
def mirrorlist(request):
diff --git a/templates/devel/profile.html b/templates/devel/profile.html
index 0dde934..6e2053f 100644
--- a/templates/devel/profile.html
+++ b/templates/devel/profile.html
@@ -11,6 +11,9 @@
<legend>Username: <strong>{{ user.username }}</strong></legend>
{{ form.as_p }}
</fieldset>
+ <fieldset>
+ {{ profile_form.as_p }}
+ </fieldset>
<p><label></label> <input title="Save changes" type="submit" value="Save" /></p>
</form>
--
1.7.2.3
More information about the arch-general
mailing list