update for publishing audiobooks
authorJan Szejko <janek37@gmail.com>
Fri, 2 Mar 2018 08:57:27 +0000 (09:57 +0100)
committerJan Szejko <janek37@gmail.com>
Fri, 2 Mar 2018 08:57:27 +0000 (09:57 +0100)
src/catalogue/management/commands/savemedia.py
src/catalogue/models/bookmedia.py

index 6196bab..ab4da51 100755 (executable)
@@ -18,7 +18,9 @@ class Command(BaseCommand):
 
     @transaction.atomic
     def handle(self, *args, **options):
-        path, slug, name = args
+        path, slug, name, part_name, index, parts_count = args
+        index = int(index)
+        parts_count = int(parts_count)
 
         book = Book.objects.get(slug=slug)
 
@@ -39,5 +41,7 @@ class Command(BaseCommand):
             bm = BookMedia(book=book, type=ext)
             print "Creating new media"
         bm.name = name
+        bm.part_name = part_name
+        bm.index = index
         bm.file.save(None, ExistingFile(path))
-        bm.save()
+        bm.save(parts_count=parts_count)
index 0bf92db..6b65080 100644 (file)
@@ -47,10 +47,11 @@ class BookMedia(models.Model):
         verbose_name_plural = _('book media')
         app_label = 'catalogue'
 
-    def save(self, *args, **kwargs):
+    def save(self, parts_count=None, *args, **kwargs):
         from catalogue.utils import ExistingFile, remove_zip
 
-        parts_count = 1 + BookMedia.objects.filter(book=self.book, type=self.type).exclude(pk=self.pk).count()
+        if not parts_count:
+            parts_count = 1 + BookMedia.objects.filter(book=self.book, type=self.type).exclude(pk=self.pk).count()
         if parts_count == 1:
             self.name = self.book.pretty_title()
         else: