--- 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