diff --git a/service_catalog/api/views/request_state_machine_api_view.py b/service_catalog/api/views/request_state_machine_api_view.py index 1ef12a076..fa387b4c4 100644 --- a/service_catalog/api/views/request_state_machine_api_view.py +++ b/service_catalog/api/views/request_state_machine_api_view.py @@ -146,8 +146,8 @@ def cancel(self, request, pk=None): raise PermissionDenied if not can_proceed(target_request.cancel): raise PermissionDenied - if target_request.cancel(): - target_request.save() + target_request.cancel() + target_request.save() send_email_request_canceled(target_request, user_applied_state=request.user) if Request.objects.filter(id=pk).exists(): diff --git a/service_catalog/models/request.py b/service_catalog/models/request.py index 7a912be69..8b9efca2b 100644 --- a/service_catalog/models/request.py +++ b/service_catalog/models/request.py @@ -147,8 +147,6 @@ def cancel(self): if self.instance.state == InstanceState.PENDING: self.instance.abort() self.instance.save() - return False - return True @transition(field=state, source=[RequestState.SUBMITTED, RequestState.ACCEPTED, RequestState.NEED_INFO], target=RequestState.REJECTED) diff --git a/service_catalog/views/request.py b/service_catalog/views/request.py index f42252cf1..09931419d 100644 --- a/service_catalog/views/request.py +++ b/service_catalog/views/request.py @@ -102,11 +102,9 @@ def request_cancel(request, pk): if not can_proceed(target_request.cancel): raise PermissionDenied if request.method == "POST": - send_email_request_canceled(target_request, - user_applied_state=request.user) - - if target_request.cancel(): - target_request.save() + send_email_request_canceled(target_request, user_applied_state=request.user) + target_request.cancel() + target_request.save() return redirect(target_request.get_absolute_url()) context = { 'breadcrumbs': [ diff --git a/tests/test_service_catalog/test_views/test_customer/test_request/test_cancel.py b/tests/test_service_catalog/test_views/test_customer/test_request/test_cancel.py index 2d61cc4bd..044c86604 100644 --- a/tests/test_service_catalog/test_views/test_customer/test_request/test_cancel.py +++ b/tests/test_service_catalog/test_views/test_customer/test_request/test_cancel.py @@ -21,6 +21,7 @@ def _assert_can_cancel(self): self.assertEqual(302, response.status_code) self.test_request.refresh_from_db() self.assertEqual(self.test_request.instance.state, InstanceState.ABORTED) + self.assertEqual(self.test_request.state, RequestState.CANCELED) def _assert_cannot_cancel(self): args = {