fix for multiple agreements
[wolnelektury.git] / src / catalogue / models / bookmedia.py
index 0bf92db..377dbc4 100644 (file)
@@ -8,14 +8,14 @@ from collections import namedtuple
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
 import jsonfield
-from fnpdjango.utils.text.slughifi import slughifi
+from slugify import slugify
 from mutagen import MutagenError
 
 from catalogue.fields import OverwriteStorage
 
 
 def _file_upload_to(i, _n):
-    return 'book/%(ext)s/%(name)s.%(ext)s' % {'ext': i.ext(), 'name': slughifi(i.name)}
+    return 'book/%(ext)s/%(name)s.%(ext)s' % {'ext': i.ext(), 'name': slugify(i.name)}
 
 
 class BookMedia(models.Model):
@@ -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:
@@ -65,7 +66,7 @@ class BookMedia(models.Model):
             old = None
         else:
             # if name changed, change the file name, too
-            if slughifi(self.name) != slughifi(old.name):
+            if slugify(self.name) != slugify(old.name):
                 self.file.save(None, ExistingFile(self.file.path), save=False)
 
         super(BookMedia, self).save(*args, **kwargs)