Skip to content

Commit 18839e0

Browse files
committed
implement image template for coursebook export
1 parent 8b82e55 commit 18839e0

5 files changed

Lines changed: 24 additions & 22 deletions

File tree

content/templates/content/export/Image.tex

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,5 @@
22
{% autoescape off %}
33

44
\textbf{ {{content.description}} }
5-
{{content.imagecontent.image.path|tex_escape}}
6-
7-
\includegraphics{ {{ content.imagecontent.image.path }} }
8-
9-
%\begin{figure}[H]
10-
%\centering
11-
%\includegraphics[width=\textwidth ext=.png]{ {{ content.imagecontent.image.url }} }
12-
%\caption{ {{content.description}} }
13-
%\end{figure}
14-
5+
\Image{ {{content.description}} }{% templatetag openbrace %}{{content.imagecontent.image.path}}{% templatetag closebrace%}
156
{% endautoescape %}

content/templates/content/export/base.tex

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,23 @@
1212
\usepackage{hyperref}
1313
\usepackage[left=1cm, right=1cm, top=2cm, bottom=2cm]{geometry}
1414

15+
%% Generate a latex graphic
16+
% 1: caption
17+
% 2: image path
18+
\newcommand{\Image}[2]{
19+
\begin{figure}[H]
20+
\centering
21+
\includegraphics{#2}
22+
\caption{#1}
23+
\end{figure}
24+
}
25+
1526
\begin{document}
1627

1728
\title{ {{ course.title|tex_escape }} }
1829
\author{ {{user|tex_escape}} }
1930
\maketitle
2031

21-
% {% for content in contents %}
22-
% \input{ {{ content.type|export_template }} }
23-
% {% endfor %}
32+
% \end{document} gets appended in code
2433

2534
{% endautoescape %}

export/helper_functions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def render(context, template_name, assets, app='export', external_assets=None):
3939
pdf = f.read()
4040
except FileNotFoundError:
4141
pdf = None
42-
return pdf, pdflatex_output
42+
return pdf, pdflatex_output, rendered_tpl
4343

4444
@staticmethod
4545
def pre_render(content):

export/views.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ def generate_coursebook(request, pk, template="content/export/base.tex", context
1414
context['user'] = user
1515
context['course'] = course
1616
context['contents'] = [favorite.content for favorite in Favorite.objects.filter(user=user.profile, course=course)]
17-
(pdf, pdflatex_output) = LaTeX.render(context, template, [])
18-
return pdf, pdflatex_output
17+
(pdf, pdflatex_output, tex_template) = LaTeX.render(context, template, [])
18+
return pdf, pdflatex_output, tex_template
1919

2020

2121
def generate_coursebook_response(request, pk, filename='coursebook.pdf'):
2222
""" Generates a PDF file with nametags for students in the queryset and sends it to the browser"""
23-
(pdf, pdflatex_output) = generate_coursebook(request, pk)
23+
(pdf, pdflatex_output, tex_template) = generate_coursebook(request, pk)
2424

25-
return write_response(request, pdf, pdflatex_output, filename)
25+
return write_response(request, pdf, pdflatex_output, tex_template, filename)
2626

2727

28-
def write_response(request, pdf, pdflatex_output, filename, content_type='application/pdf'):
28+
def write_response(request, pdf, pdflatex_output, tex_template, filename, content_type='application/pdf'):
2929
if not pdf:
30-
return render(request, "frontend/coursebook/rendering-error.html", {"content": pdflatex_output[0].decode("utf-8")})
30+
return render(request, "frontend/coursebook/rendering-error.html", {"content": pdflatex_output[0].decode("utf-8"), "tex_template": tex_template.decode("utf-8")})
3131
response = HttpResponse(content_type=content_type)
3232
response['Content-Disposition'] = 'attachment; filename=' + filename
3333
response.write(pdf)

frontend/templates/frontend/coursebook/rendering-error.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
{% block content %}
1010
<h1>Error</h1>
11-
<p>An error occured while generating your coursebook.</p>
12-
<p>{{ content }}</p>
11+
<p>An error occured while generating your coursebook. Please see the log file below.</p>
12+
<p>{{ content|linebreaks}}</p>
13+
<h3>Latex Template</h3>
14+
<p>{{ tex_template|linebreaksbr }}</p>
1315
{% endblock %}

0 commit comments

Comments
 (0)