mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Handle missing report template
This commit is contained in:
parent
a689b77cfb
commit
79434bb4e0
@ -1,11 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from django.core import exceptions
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf.urls import url, include
|
||||
from django.core.exceptions import ValidationError, FieldError
|
||||
from django.http import HttpResponse
|
||||
|
||||
from django.template.exceptions import TemplateDoesNotExist
|
||||
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
|
||||
from rest_framework import generics, filters
|
||||
@ -218,10 +221,21 @@ class ReportPrintMixin:
|
||||
|
||||
report_name = report.generate_filename(request)
|
||||
|
||||
if debug_mode:
|
||||
outputs.append(report.render_as_string(request))
|
||||
else:
|
||||
outputs.append(report.render(request))
|
||||
try:
|
||||
if debug_mode:
|
||||
outputs.append(report.render_as_string(request))
|
||||
else:
|
||||
outputs.append(report.render(request))
|
||||
except TemplateDoesNotExist:
|
||||
|
||||
filename = report.template
|
||||
|
||||
return Response(
|
||||
{
|
||||
'error': _(f"Template file '{filename}' is missing or does not exist"),
|
||||
},
|
||||
status=400,
|
||||
)
|
||||
|
||||
if not report_name.endswith('.pdf'):
|
||||
report_name += '.pdf'
|
||||
@ -243,16 +257,28 @@ class ReportPrintMixin:
|
||||
|
||||
pages = []
|
||||
|
||||
if len(outputs) > 1:
|
||||
# If more than one output is generated, merge them into a single file
|
||||
for output in outputs:
|
||||
doc = output.get_document()
|
||||
for page in doc.pages:
|
||||
pages.append(page)
|
||||
|
||||
try:
|
||||
pdf = outputs[0].get_document().copy(pages).write_pdf()
|
||||
else:
|
||||
pdf = outputs[0].get_document().write_pdf()
|
||||
|
||||
if len(outputs) > 1:
|
||||
# If more than one output is generated, merge them into a single file
|
||||
for output in outputs:
|
||||
doc = output.get_document()
|
||||
for page in doc.pages:
|
||||
pages.append(page)
|
||||
else:
|
||||
pdf = outputs[0].get_document().write_pdf()
|
||||
|
||||
except TemplateDoesNotExist:
|
||||
|
||||
filename = report.template
|
||||
|
||||
return Response(
|
||||
{
|
||||
'error': _(f"Template file '{filename}' is missing or does not exist"),
|
||||
},
|
||||
status=400,
|
||||
)
|
||||
|
||||
inline = common.models.InvenTreeUserSetting.get_setting('REPORT_INLINE', user=request.user)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user