diff -r cd5e8fb64b74 -r 56850f5c73f6 src/notes/signals.py --- 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