From 7b2349b3660607d56483553ab9f24008c87d46f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 12 Aug 2014 17:44:38 +0200 Subject: [PATCH] Allowing destroy roles with move memberships to other role --- taiga/projects/api.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/taiga/projects/api.py b/taiga/projects/api.py index c9d4e65b..fe5edfbc 100644 --- a/taiga/projects/api.py +++ b/taiga/projects/api.py @@ -248,6 +248,21 @@ class RolesViewSet(ModelCrudViewSet): filter_backends = (filters.CanViewProjectFilterBackend,) filter_fields = ('project',) + @tx.atomic + def destroy(self, request, *args, **kwargs): + moveTo = self.request.QUERY_PARAMS.get('moveTo', None) + if moveTo is None: + return super().destroy(request, *args, **kwargs) + + obj = self.get_object_or_none() + + moveItem = get_object_or_404(self.model, project=obj.project, id=moveTo) + + self.check_permissions(request, 'destroy', obj) + + models.Membership.objects.filter(project=obj.project, role=obj).update(role=moveItem) + return super().destroy(request, *args, **kwargs) + # User Stories commin ViewSets