views: wraps generic writing views with atomic() (#32533)

To prevent uninitialized connector instances to remain when errors occur
during Model.save() notably in the csvdatasource application.
This commit is contained in:
Benjamin Dauvergne 2019-04-26 16:43:13 +02:00
parent 39c2b61daf
commit edf36dc45b
1 changed files with 5 additions and 2 deletions

View File

@ -25,6 +25,7 @@ from django.core.cache import cache
from django.core.exceptions import PermissionDenied
from django.contrib.auth import logout as auth_logout
from django.contrib.auth import views as auth_views
from django.db import transaction
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import (
@ -180,7 +181,8 @@ class GenericCreateConnectorView(GenericConnectorMixin, CreateView):
template_name = 'passerelle/manage/service_form.html'
def form_valid(self, form):
response = super(GenericCreateConnectorView, self).form_valid(form)
with transaction.atomic():
response = super(GenericCreateConnectorView, self).form_valid(form)
self.object.availability()
return response
@ -189,7 +191,8 @@ class GenericEditConnectorView(GenericConnectorMixin, UpdateView):
template_name = 'passerelle/manage/service_form.html'
def form_valid(self, form):
response = super(GenericEditConnectorView, self).form_valid(form)
with transaction.atomic():
response = super(GenericEditConnectorView, self).form_valid(form)
self.object.availability()
return response