src/notes/signals.py
changeset 142 56850f5c73f6
parent 131 adad5563603c
--- a/src/notes/signals.py	Tue Jul 10 15:18:03 2018 +0200
+++ b/src/notes/signals.py	Wed Jul 18 17:32:09 2018 +0200
@@ -8,11 +8,27 @@
 from django.db.models.signals import post_save
 from django.dispatch import receiver
 
+from notes import constants
 from notes.models import GroupProfile, UserProfile
+from protocols.models import Protocol
 
 User = get_user_model()
 logger = logging.getLogger(__name__)
 
+@receiver(post_save, sender=GroupProfile, dispatch_uid="group_profile_created_signal")
+def group_profile_saved_callback(sender, instance, **kwargs):
+    created = kwargs.pop('created')
+    if instance and not instance.protocol:
+        new_protocol = Protocol.objects.create_from_default(
+            "Protocol group %s" % (instance.group.name or instance.group.ext_id ),
+            "Protocol group %s" % (instance.group.name or instance.group.ext_id),
+            instance.group.name,
+            None
+        )
+        instance.protocol = "%s%s.%s" % (constants.PROTOCOL_URN_PREFIX,new_protocol.ext_id, new_protocol.revisions.last().version)
+        instance.save()
+
+
 @receiver(post_save, sender=Group, dispatch_uid="group_created_signal")
 def group_saved_callback(sender, instance, **kwargs):
     created = kwargs.pop('created')
@@ -20,6 +36,7 @@
         profile = GroupProfile(group=instance)
         profile.save()
 
+
 @receiver(post_save, sender=User, dispatch_uid="user_created_signal")
 def user_saved_callback(sender, instance, **kwargs):
     created = kwargs.pop('created')
@@ -43,6 +60,7 @@
             personal_group_profile.description = "%s personal group" % instance.username
             personal_group_profile.owner = instance
             personal_group_profile.owner_personal = instance
+
             personal_group_profile.save()
         else:
             personal_group = personal_group_profile.group