Revision 8316698a snf-astakos-app/astakos/im/models.py

b/snf-astakos-app/astakos/im/models.py
56 56
    #for invitations
57 57
    user_level = DEFAULT_USER_LEVEL
58 58
    level = models.IntegerField('Inviter level', default=user_level)
59
    invitations = models.IntegerField('Invitations left', default=INVITATIONS_PER_LEVEL[user_level])
59
    invitations = models.IntegerField('Invitations left', default=INVITATIONS_PER_LEVEL.get(user_level, 0))
60 60
    
61 61
    auth_token = models.CharField('Authentication Token', max_length=32,
62 62
                                  null=True, blank=True)
......
69 69
    # ex. screen_name for twitter, eppn for shibboleth
70 70
    third_party_identifier = models.CharField('Third-party identifier', max_length=255, null=True, blank=True)
71 71
    
72
    email_verified = models.BooleanField('Email verified?', default=False)
73
    
72 74
    @property
73 75
    def realname(self):
74 76
        return '%s %s' %(self.first_name, self.last_name)
......
127 129
    inviter = models.ForeignKey(AstakosUser, related_name='invitations_sent',
128 130
                                null=True)
129 131
    realname = models.CharField('Real name', max_length=255)
130
    username = models.CharField('Unique ID', max_length=255)
132
    username = models.CharField('Unique ID', max_length=255, unique=True)
131 133
    code = models.BigIntegerField('Invitation code', db_index=True)
132 134
    #obsolete: we keep it just for transfering the data
133 135
    is_accepted = models.BooleanField('Accepted?', default=False)

Also available in: Unified diff