src/notes/signals.py
changeset 142 56850f5c73f6
parent 131 adad5563603c
equal deleted inserted replaced
141:cd5e8fb64b74 142:56850f5c73f6
     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)