src/ldt/ldt/user/models.py
author cavaliet
Fri, 30 Dec 2011 18:16:44 +0100
changeset 314 1a8620e5ebb0
parent 276 ee792e43b36a
child 325 f4cb93c06b42
permissions -rw-r--r--
Add memcached and sorl thumbnail pour thumbnail management. Set default pict on content, project and user.

from django.conf import settings
from django.contrib import admin
from django.contrib.auth.models import User, UserManager, Group
from django.db import models
from django.db.models.signals import post_save
from sorl.thumbnail import ImageField
import datetime

        
class Ldt(User):
#    irigroups = models.ManyToManyField(IriGroup, blank=True)
    
    class Meta:
        verbose_name = 'iri user'
        verbose_name_plural = 'iri users'
    
    def __unicode__(self):
        return self.username
        

class LdtManager(UserManager):
    def create_user(self, username, email, password=None):
        "Creates and saves a User with the given username, e-mail and password."
        now = datetime.datetime.utcnow()
        new_user = Ldt(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
        if password:
            new_user.set_password(password)
        else:
            new_user.set_unusable_password()
        new_user.save()
        new_user.groups.add(Group.objects.get(name=settings.PUBLIC_GROUP_NAME))
        return new_user   
    
    
class UserProfile (models.Model): 
    user = models.OneToOneField(User)
    language = models.CharField(max_length=2, default=settings.LANGUAGE_CODE[:2])
    
    image = ImageField(upload_to=settings.MEDIA_ROOT+"thumbnails/users/", default="thumbnails/users/user_default_icon.png")

    @staticmethod
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            UserProfile.objects.create(user=instance)


post_save.connect(UserProfile.create_user_profile, sender=User)
   
User.objects = LdtManager()
User.objects.contribute_to_class(User, "objects")

admin.site.register(Ldt)