From 73e09f8d187ce0fe33a231d8897f48ae78aa92b6 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Fri, 10 Dec 2021 12:03:18 -0800 Subject: [PATCH] Use transaction decorator on group accept --- bookwyrm/models/group.py | 41 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/bookwyrm/models/group.py b/bookwyrm/models/group.py index bd5b8d410..e92d333d5 100644 --- a/bookwyrm/models/group.py +++ b/bookwyrm/models/group.py @@ -150,31 +150,30 @@ class GroupMemberInvitation(models.Model): notification_type=notification_type, ) + @transaction.atomic def accept(self): """turn this request into the real deal""" + GroupMember.from_request(self) - with transaction.atomic(): - GroupMember.from_request(self) + model = apps.get_model("bookwyrm.Notification", require_ready=True) + # tell the group owner + model.objects.create( + user=self.group.user, + related_user=self.user, + related_group=self.group, + notification_type="ACCEPT", + ) - model = apps.get_model("bookwyrm.Notification", require_ready=True) - # tell the group owner - model.objects.create( - user=self.group.user, - related_user=self.user, - related_group=self.group, - notification_type="ACCEPT", - ) - - # let the other members know about it - for membership in self.group.memberships.all(): - member = membership.user - if member not in (self.user, self.group.user): - model.objects.create( - user=member, - related_user=self.user, - related_group=self.group, - notification_type="JOIN", - ) + # let the other members know about it + for membership in self.group.memberships.all(): + member = membership.user + if member not in (self.user, self.group.user): + model.objects.create( + user=member, + related_user=self.user, + related_group=self.group, + notification_type="JOIN", + ) def reject(self): """generate a Reject for this membership request"""