From 90f3cd6c555c7e976016b1d0cdda1e68b098764a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Thu, 18 Sep 2008 17:00:33 +0200 Subject: [PATCH] ZipFiles (does not work?). --- .../management/commands/importbooks.py | 5 ++--- apps/catalogue/models.py | 3 +++ apps/catalogue/views.py | 19 +++++++++++++------ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/apps/catalogue/management/commands/importbooks.py b/apps/catalogue/management/commands/importbooks.py index c0a5df1ae..484ed4ace 100644 --- a/apps/catalogue/management/commands/importbooks.py +++ b/apps/catalogue/management/commands/importbooks.py @@ -1,9 +1,10 @@ import os import sys +from optparse import make_option from django.core.management.base import BaseCommand from django.core.management.color import color_style -from optparse import make_option +from django.core.files import File from catalogue.models import Book @@ -38,7 +39,6 @@ class Command(BaseCommand): for dir_name in directories: if not os.path.isdir(dir_name): print self.style.ERROR("%s: Not a directory. Skipping." % dir_name) - files_skipped += 1 else: for file_name in os.listdir(dir_name): file_path = os.path.join(dir_name, file_name) @@ -47,7 +47,6 @@ class Command(BaseCommand): # Skip files that are not XML files if not ext == '.xml': print self.style.NOTICE("%s: Not an XML file. Skipping." % file_path) - files_skipped += 1 continue if verbose > 0: diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index 486172a2c..30131bdbf 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -111,6 +111,8 @@ class Book(models.Model): formats.append(u'Plik PDF' % self.pdf_file.url) if self.odt_file: formats.append(u'Plik ODT' % self.odt_file.url) + if self.odt_file: + formats. self._short_html = unicode(render_to_string('catalogue/book_short.html', {'book': self, 'tags': tags, 'formats': formats})) @@ -154,6 +156,7 @@ class Book(models.Model): raise Book.AlreadyExists('Book %s already exists' % book_slug) book.title = book_info.title + book._short_html = '' book.save() book_tags = [] diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 0026c173b..58ef8928f 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -201,7 +201,7 @@ def book_sets(request, slug): context_instance=RequestContext(request)) -@cache.cache_control(must_revalidate=True, max_age=1800) +@cache.never_cache def download_shelf(request, slug): """" Create a ZIP archive on disk and transmit it in chunks of 8KB, @@ -212,24 +212,31 @@ def download_shelf(request, slug): # Create a ZIP archive temp = tempfile.TemporaryFile() - archive = zipfile.ZipFile(temp, 'w', zipfile.ZIP_DEFLATED) + archive = zipfile.ZipFile(temp, 'w') for book in models.Book.tagged.with_all(shelf): if book.pdf_file: filename = book.pdf_file.path - archive.write(filename, str('%s.pdf' % book.slug)) + print filename + archive.write(filename, str('%s.pdf' % book.slug[:7])) if book.odt_file: filename = book.odt_file.path - archive.write(filename, str('%s.odt' % book.slug)) + print filename + archive.write(filename, str('%s.odt' % book.slug[:7])) if book.txt_file: filename = book.txt_file.path - archive.write(filename, str('%s.txt' % book.slug)) + print filename + archive.write(filename, str('%s.txt' % book.slug[:7])) archive.close() + + zf = zipfile.ZipFile(temp, 'r') + print zf.testzip() + print zf.namelist() - # Write file to archive in small chunks wrapper = FileWrapper(temp) response = HttpResponse(wrapper, content_type='application/zip') response['Content-Disposition'] = 'attachment; filename=%s.zip' % shelf.sort_key response['Content-Length'] = temp.tell() + print temp.tell() temp.seek(0) return response -- 2.20.1