book detail page - now with media / custom pdf
[wolnelektury.git] / apps / catalogue / models.py
index 2effb3b..77efe6e 100644 (file)
@@ -510,16 +510,12 @@ class Book(models.Model):
             tags = self.tags.filter(category__in=('author', 'kind', 'genre', 'epoch'))
             tags = split_tags(tags)
 
-            formats = []
+            formats = {}
             # files generated during publication
             for ebook_format in self.ebook_formats:
                 if self.has_media(ebook_format):
-                    formats.append(u'<a href="%s">%s</a>' % (
-                        self.get_media(ebook_format).url,
-                        ebook_format.upper()
-                    ))
+                    formats[ebook_format] = self.get_media(ebook_format)
 
-            formats = [mark_safe(format) for format in formats]
 
             short_html = unicode(render_to_string('catalogue/book_short.html',
                 {'book': self, 'tags': tags, 'formats': formats}))
@@ -725,10 +721,10 @@ class Book(models.Model):
                     getattr(settings, "ALL_%s_ZIP" % format_.upper()))
         return result.wait()
 
-    def zip_audiobooks(self):
-        bm = BookMedia.objects.filter(book=self, type='mp3')
+    def zip_audiobooks(self, format_):
+        bm = BookMedia.objects.filter(book=self, type=format_)
         paths = map(lambda bm: (None, bm.file.path), bm)
-        result = create_zip.delay(paths, self.fileid())
+        result = create_zip.delay(paths, "%s_%s" % (self.fileid(), format_))
         return result.wait()
 
     def search_index(self, book_info=None):