| author | verrierj |
| Wed, 25 Jan 2012 17:57:01 +0100 | |
| changeset 452 | 8e9494006e7b |
| parent 406 | c0c4cd87daf2 |
| child 545 | 96ca8ff7d7cc |
| permissions | -rw-r--r-- |
|
188
74bad93d3cb7
Merge with 50dd5c3e8ab8365982cffc4f411f9f5ba7686176
ymh <ymh.work@gmail.com>
diff
changeset
|
1 |
from django.conf import settings |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
2 |
from django.contrib import admin |
| 228 | 3 |
from django.contrib.auth.models import User, UserManager, Group |
| 169 | 4 |
from django.db import models |
|
174
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
5 |
from django.db.models.signals import post_save |
|
314
1a8620e5ebb0
Add memcached and sorl thumbnail pour thumbnail management. Set default pict on content, project and user.
cavaliet
parents:
276
diff
changeset
|
6 |
from sorl.thumbnail import ImageField |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
7 |
import datetime |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
8 |
|
|
276
ee792e43b36a
Replace is_regular field in userprofile by django permission
verrierj
parents:
259
diff
changeset
|
9 |
|
| 155 | 10 |
class Ldt(User): |
|
129
e9f11d142db5
the code works, but is not totally clean. all the parts meant to be removed are commented.
cavaliet
parents:
111
diff
changeset
|
11 |
# irigroups = models.ManyToManyField(IriGroup, blank=True) |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
12 |
|
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
13 |
class Meta: |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
14 |
verbose_name = 'iri user' |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
15 |
verbose_name_plural = 'iri users' |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
16 |
|
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
17 |
def __unicode__(self): |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
18 |
return self.username |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
19 |
|
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
20 |
|
| 155 | 21 |
class LdtManager(UserManager): |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
22 |
def create_user(self, username, email, password=None): |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
23 |
"Creates and saves a User with the given username, e-mail and password." |
| 187 | 24 |
now = datetime.datetime.utcnow() |
| 169 | 25 |
new_user = Ldt(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now) |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
26 |
if password: |
| 169 | 27 |
new_user.set_password(password) |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
28 |
else: |
| 169 | 29 |
new_user.set_unusable_password() |
30 |
new_user.save() |
|
| 247 | 31 |
new_user.groups.add(Group.objects.get(name=settings.PUBLIC_GROUP_NAME)) |
32 |
return new_user |
|
| 169 | 33 |
|
34 |
||
35 |
class UserProfile (models.Model): |
|
36 |
user = models.OneToOneField(User) |
|
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
37 |
language = models.CharField(max_length=2, default=settings.LANGUAGE_CODE[:2]) |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
38 |
image = ImageField(upload_to=settings.MEDIA_ROOT+"thumbnails/users/", default=settings.DEFAULT_USER_ICON, max_length=200) |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
39 |
|
|
174
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
40 |
@staticmethod |
|
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
41 |
def create_user_profile(sender, instance, created, **kwargs): |
|
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
42 |
if created: |
|
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
43 |
UserProfile.objects.create(user=instance) |
|
276
ee792e43b36a
Replace is_regular field in userprofile by django permission
verrierj
parents:
259
diff
changeset
|
44 |
|
| 325 | 45 |
class GroupProfile(models.Model): |
46 |
group = models.OneToOneField(Group, primary_key=False, related_name='profile') |
|
47 |
description = models.TextField() |
|
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
48 |
image = ImageField(upload_to=settings.MEDIA_ROOT+"thumbnails/groups/", default=settings.DEFAULT_GROUP_ICON, max_length=200) |
| 325 | 49 |
|
50 |
@staticmethod |
|
51 |
def create_group_profile(sender, instance, created, **kwargs): |
|
52 |
if created: |
|
53 |
profile = GroupProfile() |
|
54 |
profile.group_id = instance.id |
|
55 |
profile.save() |
|
|
452
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
56 |
admins = User.objects.filter(is_superuser=True) |
|
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
57 |
if admins: |
|
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
58 |
instance.user_set.add(admins[0]) |
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
59 |
|
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
60 |
# To keep consistency with User.get_profile() method |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
61 |
def get_profile(self): |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
62 |
return self.profile |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
63 |
|
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
64 |
Group.add_to_class("get_profile", get_profile) |
|
174
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
65 |
|
| 325 | 66 |
post_save.connect(GroupProfile.create_group_profile, sender=Group) |
|
174
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
67 |
post_save.connect(UserProfile.create_user_profile, sender=User) |
| 169 | 68 |
|
| 155 | 69 |
User.objects = LdtManager() |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
70 |
User.objects.contribute_to_class(User, "objects") |
|
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
71 |
|
| 155 | 72 |
admin.site.register(Ldt) |