Browse Source

Přepsání stvrzenek do templates

pull/7/head
Kristyna Petrlikova 2 years ago
parent
commit
c08e6c87f5
  1. 25
      seminar/static/seminar/stvrzenky.tex
  2. 37
      soustredeni/templates/soustredeni/stvrzenky.tex
  3. 5
      soustredeni/templates/soustredeni/ucastnici.tex
  4. 26
      soustredeni/views.py

25
seminar/static/seminar/stvrzenky.tex

@ -1,25 +0,0 @@
\input opmac
\chyph
\nopagenumbers
\parindent=0pt
\def\castka{1000}
\newread\data
\openin\data=/dev/stdin
\read\data to\termin
\read\data to\misto
\loop
\read\data to\ucastnik
\unless\ifeof\data
\vbox{\picw=2cm\inspic logomm.pdf \smallskip\hrule\medskip
Potvrzujeme, že \ucastnik se zúčastnil(a) soustředění Korespondenčního semináře M\&M konaného % \ucastnik má na konci mezeru
v~termínu \termin a že zaplatil(a) účastnický poplatek ve výši $\sim$\castka$\sim$. % \termin též
\bigskip
\the\day.~\the\month.~\the\year, \misto\hfill Přijal(a): \hbox to 4cm{\hrulefill}
\bigskip
}
\repeat
\bye

37
soustredeni/templates/soustredeni/stvrzenky.tex

@ -0,0 +1,37 @@
{% autoescape off %}
{% load static %}
{% load tex %}
\documentclass[11pt,a4paper]{article}
\usepackage[left=0.75in, right=0.75in,top=0.5in,bottom=0.5in]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[czech]{babel}
\usepackage{graphicx}
\begin{document}
\pagenumbering{gobble}
\parindent=0pt
\def\stvrzenka#1#2{
\vbox{%
\includegraphics[width=2cm]{logomm.pdf}
\smallskip\hrule\medskip
{% with soustredeni as s %}
Potvrzujeme, že #1 #2 se zúčastnil(a) soustředění Korespondenčního semináře M\&M konaného
v~termínu {{s.datum_zacatku|date:"j.~n.~Y"|sloz}} --
{{s.datum_konce|date:"j.~n.~Y"|sloz}} a~že zaplatil(a) účastnický poplatek ve
výši $\sim${{castka|sloz}}$\sim$.
\bigskip
{{s.datum_zacatku|date:"j.~n.~Y"|sloz}}, {{s.misto|sloz}} \hfill Přijal(a): \hbox to 4cm{\hrulefill}
\bigskip
}
{% endwith %}
}
{% for u in ucastnici %}
{% with o=u.osoba %}
\stvrzenka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}
{% endwith %}
{% endfor %}
\end{document}
{% endautoescape %}

5
soustredeni/templates/soustredeni/ucastnici.tex

@ -1,5 +0,0 @@
{% load tex %}
\newcommand{\datum}{{datum|date:"j. n. Y"|sloz}}
{% for u in ucastnici %}
\stvrzenka{{u.cislo_stvrzenky|sloz}}{{u.jmeno|sloz}}{{u.prijmeni|sloz}}{{u.ulice|sloz}}{{u.psc|sloz}}{{u.mesto|sloz}}
{% endfor %}

26
soustredeni/views.py

@ -1,8 +1,9 @@
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse from django.http import HttpResponse
from django.views import generic from django.views import generic
from django.conf import settings from django.conf import settings
from seminar.models import Soustredeni, Resitel, Soustredeni_Ucastnici # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci from django.contrib.staticfiles.finders import find
from seminar.models import Soustredeni, Resitel, Soustredeni_Ucastnici, Nastaveni # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci
import csv import csv
import tempfile import tempfile
import shutil import shutil
@ -62,20 +63,17 @@ def soustredeniUcastniciExportView(request, soustredeni):
def soustredeniStvrzenkyView(request, soustredeni): def soustredeniStvrzenkyView(request, soustredeni):
soustredeni = get_object_or_404(Soustredeni, id=soustredeni) soustredeni = get_object_or_404(Soustredeni, id=soustredeni)
ucastnici = Resitel.objects.filter(soustredeni=soustredeni) ucastnici = Resitel.objects.filter(soustredeni=soustredeni)
castka = Nastaveni.get_solo().cena_sous
tex = render(request, 'soustredeni/stvrzenky.tex', {'ucastnici': ucastnici, 'soustredeni': soustredeni, 'castka': castka}).content
static = Path(settings.STATIC_ROOT)
tempdir = Path(tempfile.mkdtemp()) tempdir = Path(tempfile.mkdtemp())
shutil.copy(static / 'images/logomm.pdf', tempdir) with open(tempdir / "stvrzenky.tex", "w") as texfile:
shutil.copy(static / 'seminar/stvrzenky.tex', tempdir) texfile.write(tex.decode())
subprocess.run(
['pdfcsplain', 'stvrzenky.tex'], shutil.copy(find('images/logomm.pdf'), tempdir)
cwd=tempdir, subprocess.call(["pdflatex", "stvrzenky.tex"], cwd = tempdir, stdout=subprocess.DEVNULL)
encoding='utf-8',
input=f'{soustredeni.datum_zacatku.strftime("%-d.~%-m.~%Y")} -- {soustredeni.datum_konce.strftime("%-d.~%-m.~%Y")}\n{soustredeni.misto}\n' with open(tempdir / "stvrzenky.pdf", "rb") as pdffile:
+ '\n'.join([f'{u.osoba.jmeno} {u.osoba.prijmeni}' for u in ucastnici])
)
with open(tempdir / 'stvrzenky.pdf', 'rb') as pdffile:
response = HttpResponse(pdffile.read(), content_type='application/pdf') response = HttpResponse(pdffile.read(), content_type='application/pdf')
shutil.rmtree(tempdir) shutil.rmtree(tempdir)
return response return response

Loading…
Cancel
Save