take literary director from settings, not hardcoded
[redakcja.git] / apps / catalogue / ebook_utils.py
index 5961b63..dae2e76 100644 (file)
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
+from StringIO import StringIO
 from catalogue.models import Book
 from librarian import DocProvider
 from django.http import HttpResponse
 from catalogue.models import Book
 from librarian import DocProvider
 from django.http import HttpResponse
@@ -7,8 +8,13 @@ from django.http import HttpResponse
 class RedakcjaDocProvider(DocProvider):
     """Used for getting books' children."""
 
 class RedakcjaDocProvider(DocProvider):
     """Used for getting books' children."""
 
+    def __init__(self, publishable):
+        self.publishable = publishable
+
     def by_slug(self, slug):
     def by_slug(self, slug):
-        return Book.objects.get(dc_slug=slug).xml_file
+        return StringIO(Book.objects.get(dc_slug=slug
+                    ).materialize(publishable=self.publishable
+                    ).encode('utf-8'))
 
 
 def serve_file(file_path, name, mime_type):
 
 
 def serve_file(file_path, name, mime_type):
@@ -18,7 +24,7 @@ def serve_file(file_path, name, mime_type):
             yield chunk
             chunk = f.read(size)
 
             yield chunk
             chunk = f.read(size)
 
-    response = HttpResponse(mimetype=mime_type)
+    response = HttpResponse(content_type=mime_type)
     response['Content-Disposition'] = 'attachment; filename=%s' % name
     with open(file_path) as f:
         for chunk in read_chunks(f):
     response['Content-Disposition'] = 'attachment; filename=%s' % name
     with open(file_path) as f:
         for chunk in read_chunks(f):