transaction.atomic in importbooks
[wolnelektury.git] / apps / catalogue / management / commands / savemedia.py
index fdc25cb..216c5e3 100755 (executable)
@@ -5,8 +5,6 @@
 import os.path
 
 from django.core.management.base import BaseCommand
 import os.path
 
 from django.core.management.base import BaseCommand
-from django.core.files import File
-from slughifi import slughifi
 
 from catalogue.models import Book, BookMedia
 from catalogue.utils import ExistingFile
 
 from catalogue.models import Book, BookMedia
 from catalogue.utils import ExistingFile
@@ -40,11 +38,12 @@ class Command(BaseCommand):
         try:
             assert source_sha1
             bm = book.media.get(type=ext, source_sha1=source_sha1)
         try:
             assert source_sha1
             bm = book.media.get(type=ext, source_sha1=source_sha1)
-            print "Replacing media: %s (%s)" % (bm.name, ext)
+            print "Replacing media: %s (%s)" % (bm.name.encode('utf-8'), ext)
         except (AssertionError, BookMedia.DoesNotExist):
         except (AssertionError, BookMedia.DoesNotExist):
-            bm = BookMedia(book=book, type=ext, name=name)
+            bm = BookMedia(book=book, type=ext)
             print "Creating new media"
             print "Creating new media"
-        bm.file.save(slughifi(name), ExistingFile(path))
+        bm.name = name
+        bm.file.save(None, ExistingFile(path))
         bm.save()
         transaction.commit()
         transaction.leave_transaction_management()
         bm.save()
         transaction.commit()
         transaction.leave_transaction_management()