6 from django.contrib.auth import get_user_model |
6 from django.contrib.auth import get_user_model |
7 from django.contrib.auth.models import Group |
7 from django.contrib.auth.models import Group |
8 from django.db.models.signals import post_save |
8 from django.db.models.signals import post_save |
9 from django.dispatch import receiver |
9 from django.dispatch import receiver |
10 |
10 |
|
11 from notes import constants |
11 from notes.models import GroupProfile, UserProfile |
12 from notes.models import GroupProfile, UserProfile |
|
13 from protocols.models import Protocol |
12 |
14 |
13 User = get_user_model() |
15 User = get_user_model() |
14 logger = logging.getLogger(__name__) |
16 logger = logging.getLogger(__name__) |
|
17 |
|
18 @receiver(post_save, sender=GroupProfile, dispatch_uid="group_profile_created_signal") |
|
19 def group_profile_saved_callback(sender, instance, **kwargs): |
|
20 created = kwargs.pop('created') |
|
21 if instance and not instance.protocol: |
|
22 new_protocol = Protocol.objects.create_from_default( |
|
23 "Protocol group %s" % (instance.group.name or instance.group.ext_id ), |
|
24 "Protocol group %s" % (instance.group.name or instance.group.ext_id), |
|
25 instance.group.name, |
|
26 None |
|
27 ) |
|
28 instance.protocol = "%s%s.%s" % (constants.PROTOCOL_URN_PREFIX,new_protocol.ext_id, new_protocol.revisions.last().version) |
|
29 instance.save() |
|
30 |
15 |
31 |
16 @receiver(post_save, sender=Group, dispatch_uid="group_created_signal") |
32 @receiver(post_save, sender=Group, dispatch_uid="group_created_signal") |
17 def group_saved_callback(sender, instance, **kwargs): |
33 def group_saved_callback(sender, instance, **kwargs): |
18 created = kwargs.pop('created') |
34 created = kwargs.pop('created') |
19 if instance and created: |
35 if instance and created: |
20 profile = GroupProfile(group=instance) |
36 profile = GroupProfile(group=instance) |
21 profile.save() |
37 profile.save() |
|
38 |
22 |
39 |
23 @receiver(post_save, sender=User, dispatch_uid="user_created_signal") |
40 @receiver(post_save, sender=User, dispatch_uid="user_created_signal") |
24 def user_saved_callback(sender, instance, **kwargs): |
41 def user_saved_callback(sender, instance, **kwargs): |
25 created = kwargs.pop('created') |
42 created = kwargs.pop('created') |
26 if not instance: |
43 if not instance: |
41 personal_group.user_set.add(instance) |
58 personal_group.user_set.add(instance) |
42 personal_group_profile = personal_group.profile |
59 personal_group_profile = personal_group.profile |
43 personal_group_profile.description = "%s personal group" % instance.username |
60 personal_group_profile.description = "%s personal group" % instance.username |
44 personal_group_profile.owner = instance |
61 personal_group_profile.owner = instance |
45 personal_group_profile.owner_personal = instance |
62 personal_group_profile.owner_personal = instance |
|
63 |
46 personal_group_profile.save() |
64 personal_group_profile.save() |
47 else: |
65 else: |
48 personal_group = personal_group_profile.group |
66 personal_group = personal_group_profile.group |
49 |
67 |
50 UserProfile.objects.create(user=instance, default_group=personal_group) |
68 UserProfile.objects.create(user=instance, default_group=personal_group) |