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

b/snf-astakos-app/astakos/im/models.py
570 570
        if q.count() != 0:
571 571
            raise ValidationError({'__all__': [_(astakos_messages.UNIQUE_EMAIL_IS_ACTIVE_CONSTRAIN_ERR)]})
572 572

  
573
    def email_change_is_pending(self):
574
        return self.emailchanges.count() > 0
575

  
573 576
    @property
574 577
    def signed_terms(self):
575 578
        term = get_latest_terms()
......
960 963

  
961 964

  
962 965
class EmailChangeManager(models.Manager):
966

  
963 967
    @transaction.commit_on_success
964 968
    def change_email(self, activation_key):
965 969
        """
......
993 997
                raise ValueError(_(astakos_messages.NEW_EMAIL_ADDR_RESERVED))
994 998
            # update user
995 999
            user = AstakosUser.objects.get(pk=email_change.user_id)
1000
            old_email = user.email
996 1001
            user.email = email_change.new_email_address
997 1002
            user.save()
998 1003
            email_change.delete()
1004
            msg = "User %d changed email from %s to %s" % (user.pk, old_email,
1005
                                                          user.email)
1006
            logger.log(LOGGING_LEVEL, msg)
999 1007
            return user
1000 1008
        except EmailChange.DoesNotExist:
1001 1009
            raise ValueError(_(astakos_messages.INVALID_ACTIVATION_KEY))
......
1005 1013
    new_email_address = models.EmailField(_(u'new e-mail address'),
1006 1014
                                          help_text=_(astakos_messages.EMAIL_CHANGE_NEW_ADDR_HELP))
1007 1015
    user = models.ForeignKey(
1008
        AstakosUser, unique=True, related_name='emailchange_user')
1016
        AstakosUser, unique=True, related_name='emailchanges')
1009 1017
    requested_at = models.DateTimeField(default=datetime.now())
1010 1018
    activation_key = models.CharField(
1011 1019
        max_length=40, unique=True, db_index=True)
1012 1020

  
1013 1021
    objects = EmailChangeManager()
1014 1022

  
1023
    def get_url(self):
1024
        return reverse('email_change_confirm',
1025
                      kwargs={'activation_key': self.activation_key})
1026

  
1015 1027
    def activation_key_expired(self):
1016 1028
        expiration_date = timedelta(days=EMAILCHANGE_ACTIVATION_DAYS)
1017 1029
        return self.requested_at + expiration_date < datetime.now()

Also available in: Unified diff