Source code for sandglass.models.userprofile

import datetime

from django.contrib.auth.models import User
from django.core.validators import MinValueValidator
from django.db import models
from django.db.models.signals import post_save
from django.utils.translation import ugettext_lazy as _

from django_extensions.db.models import TimeStampedModel

from sandglass.models.team import Team
from sandglass.models.theme import Theme
from sandglass.models.timemodel import TimeModel


[docs]class UserProfile(TimeStampedModel): """Extension model tied to ``django.contrib.auth.models.User``. Adds sandglass-specific user properties. """ user = models.OneToOneField(to=User) failed_logins = models.SmallIntegerField( verbose_name=_(u"number of failed logins"), blank=True, null=True, validators=[MinValueValidator(0)]) # TODO: failed_logins will lock user account if greater than # sandglass.conf.settings.LOCK_USER_AFTER_FAILED_LOGINS date_locked = models.DateTimeField( verbose_name=_(u"lock timestamp"), blank=True, null=True) teams = models.ManyToManyField( Team, verbose_name=_(u"teams"), blank=True, null=True) status_message = models.TextField( verbose_name=_(u"status message"), blank=True, null=True) time_model = models.ForeignKey( TimeModel, verbose_name=_(u"time model"), blank=True, null=True) date_entry = models.DateField( verbose_name=_(u"entry date"), default=datetime.date.today) # TODO: avatar: use django-avatar? theme = models.ForeignKey( Theme, verbose_name=_(u"theme"), blank=True, null=True) class Meta: app_label = 'sandglass'
[docs]def create_user_profile(sender, instance, created, **kwargs): """Creates a ``UserProfile`` as soon as a ``User`` is created.""" if created: UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User) __all__ = ('UserProfile', 'create_user_profile')

Project Versions