src/cm/views/user.py
changeset 225 67e1a89d6bca
parent 196 d435027bafac
child 248 a55ad4c551e1
equal deleted inserted replaced
224:cc85d241b81d 225:67e1a89d6bca
   392         
   392         
   393         display_message(request, _(u"A new invitation has been sent to user %(prof)s.") % {'prof':profile.simple_print()})
   393         display_message(request, _(u"A new invitation has been sent to user %(prof)s.") % {'prof':profile.simple_print()})
   394         return HttpResponse('') # no redirect because this is called by js
   394         return HttpResponse('') # no redirect because this is called by js
   395     raise UnauthorizedException('')
   395     raise UnauthorizedException('')
   396 
   396 
       
   397 from django.contrib.auth.forms import PasswordChangeForm
       
   398 
   397 @login_required()
   399 @login_required()
   398 def profile(request):
   400 def profile(request):
   399     user = request.user
   401     user = request.user
   400     profile = user.get_profile()
   402     profile = user.get_profile()
   401     if request.method == 'POST':
   403     if request.method == 'POST':
   402         userform = UserForm(request.POST, instance=user)
   404         userform = UserForm(request.POST, instance=user)
   403         userprofileform = MyUserProfileForm(request.POST, instance=profile)
   405         userprofileform = MyUserProfileForm(request.POST, instance=profile)
       
   406         
   404         if userform.is_valid() and userprofileform.is_valid():
   407         if userform.is_valid() and userprofileform.is_valid():
   405             userform.save()
   408             userform.save()
   406             userprofileform.save()
   409             userprofileform.save()
   407             display_message(request, _(u'Profile updated'))
   410             display_message(request, _(u'Profile updated'))
   408             return HttpResponseRedirect(reverse('index'))
   411             return HttpResponseRedirect(reverse('index'))
   410         userform = UserForm(instance=user)
   413         userform = UserForm(instance=user)
   411         userprofileform = MyUserProfileForm(instance=profile)
   414         userprofileform = MyUserProfileForm(instance=profile)
   412     
   415     
   413     return render_to_response('site/profile.html', {'forms' : [userform, userprofileform],
   416     return render_to_response('site/profile.html', {'forms' : [userform, userprofileform],
   414                                                                'title' : 'Profile',
   417                                                                'title' : 'Profile',
       
   418                                                                 }, context_instance=RequestContext(request))
       
   419 
       
   420 @login_required()
       
   421 def profile_pw(request):
       
   422     user = request.user
       
   423     profile = user.get_profile()
       
   424     if request.method == 'POST':
       
   425         pwform = PasswordChangeForm(profile.user, data = request.POST)
       
   426         if pwform.is_valid():
       
   427             pwform.save()
       
   428             display_message(request, _(u'Password changed'))
       
   429             return HttpResponseRedirect(reverse('profile'))
       
   430     else:
       
   431         pwform = PasswordChangeForm(profile.user)
       
   432     return render_to_response('site/profile_pw.html', {'forms' : [pwform],
       
   433                                                                'title' : 'Password',
   415                                                                 }, context_instance=RequestContext(request))
   434                                                                 }, context_instance=RequestContext(request))
   416 
   435 
   417 class AnonUserRoleForm(UserRoleForm):
   436 class AnonUserRoleForm(UserRoleForm):
   418     def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
   437     def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
   419                  initial=None, error_class=ErrorList, label_suffix=':',
   438                  initial=None, error_class=ErrorList, label_suffix=':',