--- a/src/notes/api/serializers/auth.py Tue Jul 10 15:18:03 2018 +0200
+++ b/src/notes/api/serializers/auth.py Wed Jul 18 17:32:09 2018 +0200
@@ -2,12 +2,14 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
+from django.db import transaction
+from notes import constants
+from notes.api.fields.category import ProtocolField
+from protocols.models import Protocol
from rest_auth.serializers import \
UserDetailsSerializer as RestAuthUserDetailsSerializer
from rest_framework import serializers
-from notes.api.fields.category import ProtocolField
-
logger = logging.getLogger(__name__)
User = get_user_model()
@@ -71,6 +73,14 @@
group.user_set.add(user)
group.save()
group.profile.owner = user
+
+ new_protocol = Protocol.objects.create_from_default(
+ "Protocol group %s"%validated_data.get('name', ''),
+ "Protocol group %s"%validated_data.get('name', ''),
+ validated_data.get('name', ''),
+ None
+ )
+ group.profile.protocol = "%s%s.%s" % (constants.PROTOCOL_URN_PREFIX, new_protocol.ext_id, new_protocol.revisions.last().version)
group.profile.save()
return group
@@ -90,6 +100,10 @@
return group
+ @transaction.atomic()
+ def save(self, **kwargs):
+ return super().save(**kwargs)
+
class UserDetailsSerializer(RestAuthUserDetailsSerializer):
default_group = serializers.SlugRelatedField(read_only=True, slug_field='name', source='profile.default_group')