X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/1f833acede38e81683b2bdc9096edf203c6ceb1e..2bf5eaca680da6ebd22e6fd799a9a5d68206f0b8:/apps/reporting/utils.py?ds=sidebyside diff --git a/apps/reporting/utils.py b/apps/reporting/utils.py index 8a7a6cf1d..cc4e97a29 100755 --- a/apps/reporting/utils.py +++ b/apps/reporting/utils.py @@ -2,16 +2,12 @@ # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # +from errno import ENOENT import os import os.path -import shutil -import subprocess -from tempfile import mkdtemp -from StringIO import StringIO from django.conf import settings import logging from django.http import HttpResponse -from django.template.loader import render_to_string logger = logging.getLogger(__name__) @@ -25,7 +21,13 @@ def render_to_pdf(output_path, template, context=None, add_files=None): :param dict add_files: a dictionary of additional files XeTeX will need """ + from StringIO import StringIO + import shutil + from tempfile import mkdtemp + import subprocess import Texml.processor + from django.template.loader import render_to_string + rendered = render_to_string(template, context) texml = StringIO(rendered.encode('utf-8')) tempdir = mkdtemp(prefix = "render_to_pdf-") @@ -71,7 +73,11 @@ def generated_file_view(file_name, mime_type, send_name=None, signals=None): send_name = os.path.basename(file_name) def signal_handler(*args, **kwargs): - os.unlink(file_path) + try: + os.unlink(file_path) + except OSError as oe: + if oe.errno != ENOENT: + raise oe if signals: for signal in signals: