Revision 34a76cdb snf-astakos-app/astakos/im/views.py

b/snf-astakos-app/astakos/im/views.py
670 670
                 confirm_template_name='registration/email_change_done.html',
671 671
                 extra_context=None):
672 672
    extra_context = extra_context or {}
673

  
674

  
673 675
    if activation_key:
674 676
        try:
675 677
            user = EmailChange.objects.change_email(activation_key)
......
679 681
                auth_logout(request)
680 682
                response = prepare_response(request, user)
681 683
                transaction.commit()
682
                return response
684
                return HttpResponseRedirect(reverse('edit_profile'))
683 685
        except ValueError, e:
684 686
            messages.error(request, e)
687
            transaction.rollback()
688
            return HttpResponseRedirect(reverse('index'))
689

  
685 690
        return render_response(confirm_template_name,
686
                               modified_user=user if 'user' in locals(
687
                               ) else None,
688
                               context_instance=get_context(request,
691
                               modified_user=user if 'user' in locals() \
692
                               else None, context_instance=get_context(request,
689 693
                                                            extra_context))
690 694

  
691 695
    if not request.user.is_authenticated():
692 696
        path = quote(request.get_full_path())
693 697
        url = request.build_absolute_uri(reverse('index'))
694 698
        return HttpResponseRedirect(url + '?next=' + path)
699

  
700
    # clean up expired email changes
701
    if request.user.email_change_is_pending():
702
        change = request.user.emailchanges.get()
703
        if change.activation_key_expired():
704
            change.delete()
705
            transaction.commit()
706
            return HttpResponseRedirect(reverse('email_change'))
707

  
695 708
    form = EmailChangeForm(request.POST or None)
696 709
    if request.method == 'POST' and form.is_valid():
697 710
        try:
711
            # delete pending email changes
712
            request.user.emailchanges.all().delete()
698 713
            ec = form.save(email_template_name, request)
699 714
        except SendMailError, e:
700 715
            msg = e
701 716
            messages.error(request, msg)
702 717
            transaction.rollback()
703
        except IntegrityError, e:
704
            msg = _(astakos_messages.PENDING_EMAIL_CHANGE_REQUEST)
705
            messages.error(request, msg)
718
            return HttpResponseRedirect(reverse('edit_profile'))
706 719
        else:
707 720
            msg = _(astakos_messages.EMAIL_CHANGE_REGISTERED)
708 721
            messages.success(request, msg)
709 722
            transaction.commit()
723
            return HttpResponseRedirect(reverse('edit_profile'))
724

  
725
    if request.user.email_change_is_pending():
726
        messages.warning(request, astakos_messages.PENDING_EMAIL_CHANGE_REQUEST)
727

  
710 728
    return render_response(
711 729
        form_template_name,
712 730
        form=form,

Also available in: Unified diff