mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-28 11:36:44 +00:00
Revoke support for LaTex reporting
This commit is contained in:
parent
264bd625d3
commit
59904ace1d
@ -208,7 +208,6 @@ INSTALLED_APPS = [
|
|||||||
'mptt', # Modified Preorder Tree Traversal
|
'mptt', # Modified Preorder Tree Traversal
|
||||||
'markdownx', # Markdown editing
|
'markdownx', # Markdown editing
|
||||||
'markdownify', # Markdown template rendering
|
'markdownify', # Markdown template rendering
|
||||||
'django_tex', # LaTeX output
|
|
||||||
'django_admin_shell', # Python shell for the admin interface
|
'django_admin_shell', # Python shell for the admin interface
|
||||||
'djmoney', # django-money integration
|
'djmoney', # django-money integration
|
||||||
'djmoney.contrib.exchange', # django-money exchange rates
|
'djmoney.contrib.exchange', # django-money exchange rates
|
||||||
@ -265,14 +264,6 @@ TEMPLATES = [
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
# Backend for LaTeX report rendering
|
|
||||||
{
|
|
||||||
'NAME': 'tex',
|
|
||||||
'BACKEND': 'django_tex.engine.TeXEngine',
|
|
||||||
'DIRS': [
|
|
||||||
os.path.join(MEDIA_ROOT, 'report'),
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
@ -485,22 +476,6 @@ DATE_INPUT_FORMATS = [
|
|||||||
"%Y-%m-%d",
|
"%Y-%m-%d",
|
||||||
]
|
]
|
||||||
|
|
||||||
# LaTeX rendering settings (django-tex)
|
|
||||||
LATEX_SETTINGS = CONFIG.get('latex', {})
|
|
||||||
|
|
||||||
# Is LaTeX rendering enabled? (Off by default)
|
|
||||||
LATEX_ENABLED = LATEX_SETTINGS.get('enabled', False)
|
|
||||||
|
|
||||||
# Set the latex interpreter in the config.yaml settings file
|
|
||||||
LATEX_INTERPRETER = LATEX_SETTINGS.get('interpreter', 'pdflatex')
|
|
||||||
|
|
||||||
LATEX_INTERPRETER_OPTIONS = LATEX_SETTINGS.get('options', '')
|
|
||||||
|
|
||||||
LATEX_GRAPHICSPATH = [
|
|
||||||
# Allow LaTeX files to access the report assets directory
|
|
||||||
os.path.join(MEDIA_ROOT, "report", "assets"),
|
|
||||||
]
|
|
||||||
|
|
||||||
# crispy forms use the bootstrap templates
|
# crispy forms use the bootstrap templates
|
||||||
CRISPY_TEMPLATE_PACK = 'bootstrap3'
|
CRISPY_TEMPLATE_PACK = 'bootstrap3'
|
||||||
|
|
||||||
|
@ -107,19 +107,6 @@ static_root: '../inventree_static'
|
|||||||
# If unspecified, the local user's temp directory will be used
|
# If unspecified, the local user's temp directory will be used
|
||||||
#backup_dir: '/home/inventree/backup/'
|
#backup_dir: '/home/inventree/backup/'
|
||||||
|
|
||||||
# LaTeX report rendering
|
|
||||||
# InvenTree uses the django-tex plugin to enable LaTeX report rendering
|
|
||||||
# Ref: https://pypi.org/project/django-tex/
|
|
||||||
# Note: Ensure that a working LaTeX toolchain is installed and working *before* starting the server
|
|
||||||
latex:
|
|
||||||
# Select the LaTeX interpreter to use for PDF rendering
|
|
||||||
# Note: The intepreter needs to be installed on the system!
|
|
||||||
# e.g. to install pdflatex: apt-get texlive-latex-base
|
|
||||||
enabled: False
|
|
||||||
interpreter: pdflatex
|
|
||||||
# Extra options to pass through to the LaTeX interpreter
|
|
||||||
options: ''
|
|
||||||
|
|
||||||
# Permit custom authentication backends
|
# Permit custom authentication backends
|
||||||
#authentication_backends:
|
#authentication_backends:
|
||||||
# - 'django.contrib.auth.backends.ModelBackend'
|
# - 'django.contrib.auth.backends.ModelBackend'
|
||||||
|
20
InvenTree/report/migrations/0007_auto_20210204_1617.py
Normal file
20
InvenTree/report/migrations/0007_auto_20210204_1617.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Generated by Django 3.0.7 on 2021-02-04 05:17
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
|
from django.db import migrations, models
|
||||||
|
import report.models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('report', '0006_reportsnippet'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='testreport',
|
||||||
|
name='template',
|
||||||
|
field=models.FileField(help_text='Report template file', upload_to=report.models.rename_template, validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['html', 'htm'])], verbose_name='Template'),
|
||||||
|
),
|
||||||
|
]
|
@ -14,7 +14,6 @@ from django.db import models
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from django.core.validators import FileExtensionValidator
|
from django.core.validators import FileExtensionValidator
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
|
|
||||||
import stock.models
|
import stock.models
|
||||||
|
|
||||||
@ -29,17 +28,6 @@ except OSError as err:
|
|||||||
print("You may require some further system packages to be installed.")
|
print("You may require some further system packages to be installed.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# Conditional import if LaTeX templating is enabled
|
|
||||||
if settings.LATEX_ENABLED:
|
|
||||||
try:
|
|
||||||
from django_tex.shortcuts import render_to_pdf
|
|
||||||
from django_tex.core import render_template_with_context
|
|
||||||
from django_tex.exceptions import TexError
|
|
||||||
except OSError as err:
|
|
||||||
print("OSError: {e}".format(e=err))
|
|
||||||
print("You may not have a working LaTeX toolchain installed?")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
|
||||||
@ -104,7 +92,7 @@ class ReportBase(models.Model):
|
|||||||
def template_name(self):
|
def template_name(self):
|
||||||
"""
|
"""
|
||||||
Returns the file system path to the template file.
|
Returns the file system path to the template file.
|
||||||
Required for passing the file to an external process (e.g. LaTeX)
|
Required for passing the file to an external process
|
||||||
"""
|
"""
|
||||||
|
|
||||||
template = os.path.join('report_template', self.getSubdir(), os.path.basename(self.template.name))
|
template = os.path.join('report_template', self.getSubdir(), os.path.basename(self.template.name))
|
||||||
@ -124,7 +112,7 @@ class ReportBase(models.Model):
|
|||||||
upload_to=rename_template,
|
upload_to=rename_template,
|
||||||
verbose_name=_('Template'),
|
verbose_name=_('Template'),
|
||||||
help_text=_("Report template file"),
|
help_text=_("Report template file"),
|
||||||
validators=[FileExtensionValidator(allowed_extensions=['html', 'htm', 'tex'])],
|
validators=[FileExtensionValidator(allowed_extensions=['html', 'htm'])],
|
||||||
)
|
)
|
||||||
|
|
||||||
description = models.CharField(
|
description = models.CharField(
|
||||||
@ -153,12 +141,11 @@ class ReportTemplateBase(ReportBase):
|
|||||||
"""
|
"""
|
||||||
Render the template to a PDF file.
|
Render the template to a PDF file.
|
||||||
|
|
||||||
Supported template formats:
|
Uses django-weasyprint plugin to render HTML template against Weasyprint
|
||||||
.tex - Uses django-tex plugin to render LaTeX template against an installed LaTeX engine
|
|
||||||
.html - Uses django-weasyprint plugin to render HTML template against Weasyprint
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
filename = kwargs.get('filename', 'report.pdf')
|
# TODO: Support custom filename generation!
|
||||||
|
# filename = kwargs.get('filename', 'report.pdf')
|
||||||
|
|
||||||
context = self.get_context_data(request)
|
context = self.get_context_data(request)
|
||||||
|
|
||||||
@ -171,20 +158,6 @@ class ReportTemplateBase(ReportBase):
|
|||||||
context['date'] = datetime.datetime.now().date()
|
context['date'] = datetime.datetime.now().date()
|
||||||
context['datetime'] = datetime.datetime.now()
|
context['datetime'] = datetime.datetime.now()
|
||||||
|
|
||||||
if self.extension == '.tex':
|
|
||||||
# Render LaTeX template to PDF
|
|
||||||
if settings.LATEX_ENABLED:
|
|
||||||
# Attempt to render to LaTeX template
|
|
||||||
# If there is a rendering error, return the (partially rendered) template,
|
|
||||||
# so at least we can debug what is going on
|
|
||||||
try:
|
|
||||||
rendered = render_template_with_context(self.template_name, context)
|
|
||||||
return render_to_pdf(request, self.template_name, context, filename=filename)
|
|
||||||
except TexError:
|
|
||||||
return TexResponse(rendered, filename="error.tex")
|
|
||||||
else:
|
|
||||||
raise ValidationError("Enable LaTeX support in config.yaml")
|
|
||||||
elif self.extension in ['.htm', '.html']:
|
|
||||||
# Render HTML template to PDF
|
# Render HTML template to PDF
|
||||||
wp = WeasyprintReportMixin(
|
wp = WeasyprintReportMixin(
|
||||||
request,
|
request,
|
||||||
|
@ -23,7 +23,6 @@ coverage==5.3 # Unit test coverage
|
|||||||
coveralls==2.1.2 # Coveralls linking (for Travis)
|
coveralls==2.1.2 # Coveralls linking (for Travis)
|
||||||
rapidfuzz==0.7.6 # Fuzzy string matching
|
rapidfuzz==0.7.6 # Fuzzy string matching
|
||||||
django-stdimage==5.1.1 # Advanced ImageField management
|
django-stdimage==5.1.1 # Advanced ImageField management
|
||||||
django-tex==1.1.7 # LaTeX PDF export
|
|
||||||
django-weasyprint==1.0.1 # HTML PDF export
|
django-weasyprint==1.0.1 # HTML PDF export
|
||||||
django-debug-toolbar==2.2 # Debug / profiling toolbar
|
django-debug-toolbar==2.2 # Debug / profiling toolbar
|
||||||
django-admin-shell==0.1.2 # Python shell for the admin interface
|
django-admin-shell==0.1.2 # Python shell for the admin interface
|
||||||
|
Loading…
x
Reference in New Issue
Block a user