--- /dev/null
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('catalogue', '0011_auto_20160413_1152'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='bookmedia',
+ name='index',
+ field=models.IntegerField(default=0, verbose_name='index'),
+ ),
+ migrations.AddField(
+ model_name='bookmedia',
+ name='part_name',
+ field=models.CharField(default=b'', max_length=512, verbose_name='part name'),
+ ),
+ ]
type = models.CharField(_('type'), db_index=True, choices=format_choices, max_length=20)
name = models.CharField(_('name'), max_length=512)
+ part_name = models.CharField(_('part name'), default='', max_length=512)
+ index = models.IntegerField(_('index'), default=0)
file = OverwritingFileField(_('file'), max_length=600, upload_to=_file_upload_to)
uploaded_at = models.DateTimeField(_('creation date'), auto_now_add=True, editable=False, db_index=True)
extra_info = jsonfield.JSONField(_('extra information'), default={}, editable=False)
def save(self, *args, **kwargs):
from catalogue.utils import ExistingFile, remove_zip
+ parts_count = BookMedia.objects.filter(book=self.book, type=self.type).count()
+ if parts_count == 1:
+ self.name = self.book.pretty_title()
+ else:
+ no = ('%02d' if parts_count < 100 else '%03d') % self.index
+ self.name = '%s. %s' % (no, self.book.pretty_title())
+ if self.part_name:
+ self.name += ', ' + self.part_name
+
try:
old = BookMedia.objects.get(pk=self.pk)
except BookMedia.DoesNotExist: