~doctormo/erato/trunk

« back to all changes in this revision

Viewing changes to art_website/users/models.py

  • Committer: Martin Owens
  • Date: 2010-10-20 15:33:05 UTC
  • Revision ID: doctormo@gmail.com-20101020153305-w5vcu2jclk5a38so
Manual merge in of other inital branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from django.db import models
 
2
from django.contrib.auth import models as auth_models
 
3
# Create your models here.
 
4
 
 
5
class UserProfile(models.Model):
 
6
    " Store profile information about a user "
 
7
 
 
8
    user = models.OneToOneField(auth_models.User)
 
9
    realname = models.CharField("Real Name", max_length=150, blank=True)
 
10
    website = models.URLField(max_length=255, blank=True, null=True)
 
11
    """ not used
 
12
    tz = models.CharField(verbose_name=_('Timezone'), max_length=32, default='UTC')
 
13
    blog = models.URLField(verbose_name=_('Blog URL'), blank=True, null=True, verify_exists=False)
 
14
    twitter = models.CharField(verbose_name=_('Twitter ID'), max_length=32, blank=True, null=True)
 
15
    identica = models.CharField(verbose_name=_('Identi.ca ID'), max_length=32, blank=True, null=True)
 
16
    picasa = models.CharField(verbose_name=_('Picasa ID'), max_length=32, blank=True, null=True)
 
17
    flickr = models.CharField(verbose_name=_('Flickr ID'), max_length=32, blank=True, null=True)
 
18
    facebook = models.CharField(verbose_name=_('Facebook ID'), max_length=32, blank=True, null=True)
 
19
    irc = models.CharField(verbose_name=_('IRC Nick'), max_length=32, blank=True, null=True)
 
20
    aim = models.CharField(verbose_name=_('AOL IM Nick'), max_length=32, blank=True, null=True)
 
21
    xmpp = models.CharField(verbose_name=_('XMPP IM Nick'), max_length=32, blank=True, null=True)
 
22
    """
 
23
    def __unicode__(self):
 
24
        try:
 
25
            if self.realname:
 
26
                return "%s (%s)" % (self.user.username, self.realname)
 
27
            return "%s" % self.user.username
 
28
        except:
 
29
            return "Unknown Profile"
 
30
    
 
31
def _getUserProfile(self):
 
32
    if not self.is_authenticated():
 
33
        return UserProfile()
 
34
    
 
35
    profile, created = UserProfile.objects.get_or_create(user=self)
 
36
    
 
37
    if created:
 
38
        from common.launchpad import get_user_timezone
 
39
        #profile.tz = get_user_timezone(self.username)
 
40
        profile.save()
 
41
        
 
42
    return profile
 
43
 
 
44
def _getAnonProfile(self):
 
45
    return UserProfile()
 
46
        
 
47
auth_models.User.profile = property(_getUserProfile)
 
48
auth_models.AnonymousUser.profile = property(_getAnonProfile)
 
49
 
 
50
def create_profile(username):
 
51
    user, created = auth_models.User.objects.get_or_create(username=username)
 
52
    if created:
 
53
        user.save()
 
54
    profile, created = UserProfile.objects.get_or_create(user=user)
 
55
    if created:
 
56
        # set real name as username for now, 
 
57
        # we get the name later on via cronjob
 
58
        profile.realname = username
 
59
        profile.save()
 
60
    return profile