X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..475755d65b5fe2a52cd5122673fe5c55f624fba4:/src/catalogue/management/commands/savemedia.py

diff --git a/src/catalogue/management/commands/savemedia.py b/src/catalogue/management/commands/savemedia.py
index 216c5e335..6196bab42 100755
--- a/src/catalogue/management/commands/savemedia.py
+++ b/src/catalogue/management/commands/savemedia.py
@@ -5,25 +5,21 @@
 import os.path
 
 from django.core.management.base import BaseCommand
+from django.db import transaction
 
 from catalogue.models import Book, BookMedia
 from catalogue.utils import ExistingFile
 
 
 class Command(BaseCommand):
-    help = "Saves uploaded media with a given book and a given name. If media has a source SHA1 info - matching media is replaced."
+    help = "Saves uploaded media with a given book and a given name. " \
+           "If media has a source SHA1 info - matching media is replaced."
     args = 'path slug name'
 
+    @transaction.atomic
     def handle(self, *args, **options):
-        from django.db import transaction
-
         path, slug, name = args
 
-        # Start transaction management.
-        transaction.commit_unless_managed()
-        transaction.enter_transaction_management()
-        transaction.managed(True)
-
         book = Book.objects.get(slug=slug)
 
         root, ext = os.path.splitext(path)
@@ -45,5 +41,3 @@ class Command(BaseCommand):
         bm.name = name
         bm.file.save(None, ExistingFile(path))
         bm.save()
-        transaction.commit()
-        transaction.leave_transaction_management()