| author | cavaliet |
| Fri, 26 Oct 2012 16:32:30 +0200 | |
| branch | new_rest_api |
| changeset 877 | 50d333d90541 |
| parent 854 | e4be64dd42af |
| child 1191 | b6e0b1811723 |
| 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: |
| 854 | 43 |
UserProfile.objects.get_or_create(user=instance) |
|
652
cdbd6d1d8088
correct virtualenv creation + addcommand to reinitialize front projects
ymh <ymh.work@gmail.com>
parents:
545
diff
changeset
|
44 |
everyone, _ = Group.objects.get_or_create(name=settings.PUBLIC_GROUP_NAME) |
| 545 | 45 |
instance.groups.add(everyone) |
|
276
ee792e43b36a
Replace is_regular field in userprofile by django permission
verrierj
parents:
259
diff
changeset
|
46 |
|
| 325 | 47 |
class GroupProfile(models.Model): |
48 |
group = models.OneToOneField(Group, primary_key=False, related_name='profile') |
|
49 |
description = models.TextField() |
|
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
50 |
image = ImageField(upload_to=settings.MEDIA_ROOT+"thumbnails/groups/", default=settings.DEFAULT_GROUP_ICON, max_length=200) |
| 325 | 51 |
|
52 |
@staticmethod |
|
53 |
def create_group_profile(sender, instance, created, **kwargs): |
|
54 |
if created: |
|
55 |
profile = GroupProfile() |
|
56 |
profile.group_id = instance.id |
|
57 |
profile.save() |
|
|
452
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
58 |
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
|
59 |
if admins: |
|
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
60 |
instance.user_set.add(admins[0]) |
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
61 |
|
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
62 |
# To keep consistency with User.get_profile() method |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
63 |
def get_profile(self): |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
64 |
return self.profile |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
65 |
|
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
66 |
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
|
67 |
|
| 325 | 68 |
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
|
69 |
post_save.connect(UserProfile.create_user_profile, sender=User) |
| 169 | 70 |
|
| 155 | 71 |
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
|
72 |
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
|
73 |
|
| 155 | 74 |
admin.site.register(Ldt) |