from django.contrib.auth.models import User
from django.core.files import File
from django.template.loader import render_to_string
-from django.template.defaultfilters import slugify
from django.utils.safestring import mark_safe
from django.utils.translation import get_language
from django.core.urlresolvers import reverse
from librarian import dcparser, html, epub, NoDublinCore
from mutagen import id3
+from slughifi import slughifi
TAG_CATEGORIES = (
# TODO: why is this hard-coded ?
-def book_upload_path(ext=None):
+def book_upload_path(ext=None, maxlen=100):
def get_dynamic_path(media, filename, ext=ext):
# how to put related book's slug here?
if not ext:
ext = media.type
if not media.name:
- name = slugify(filename.split(".")[0])
+ name = slughifi(filename.split(".")[0])
else:
- name = slugify(media.name)
- return 'lektura/%s.%s' % (name, ext)
+ name = slughifi(media.name)
+ return 'lektura/%s.%s' % (name[:(maxlen-len('lektura/.%s' % ext))], ext)
return get_dynamic_path
verbose_name = _('book media')
verbose_name_plural = _('book media')
- def save(self, force_insert=False, force_update=False):
- media = super(BookMedia, self).save(force_insert, force_update)
+ def save(self, force_insert=False, force_update=False, **kwargs):
+ media = super(BookMedia, self).save(force_insert, force_update, **kwargs)
if self.type == 'mp3':
file = self.file
extra_info = self.get_extra_info_value()
extra_info.update(self.get_mp3_info())
self.set_extra_info_value(extra_info)
- media = super(BookMedia, self).save(force_insert, force_update)
+ media = super(BookMedia, self).save(force_insert, force_update, **kwargs)
return media
def get_mp3_info(self):
def from_text_and_meta(cls, raw_file, book_info, overwrite=False, build_epub=True, build_txt=True):
import re
from tempfile import NamedTemporaryFile
- from slughifi import slughifi
from markupstring import MarkupString
from django.core.files.storage import default_storage