ergebnis_dir="ergebnis/"
cd $dir
-pdflatex $file
+pdflatex -interaction nonstopmode $file
# Schiebe Ergebnis in das Ergebnisverzeichnis
erg_datei=${file%.tex}.pdf
\RequirePackage{fix-cm}
\RequirePackage[T1]{fontenc} % Ligaturschriften
\RequirePackage[utf8]{inputenc} % Eingabezeichensatz
+\RequirePackage{lmodern}
\RequirePackage{graphicx} % Grafikpaket
\RequirePackage{hyperref}
\usepackage{wallpaper} % Hintergrundbilder
print ("Gesamt", self.gesamtbetrag, sep=";", file=self.csvfile )
self.csvfile.close()
- def erstellepdf(self, m):
+ def erstellepdf(self, m) -> int :
gg = m.VersicherteGrundstucke()
g1 = gg[0]
gn = gg[1:]
import subprocess
rc = subprocess.call(["bash", self.pdfersteller, self.pfad, f'{m.nachname}_{m.mitgliedsnr}_brief.tex'])
if rc != 0:
- raise RuntimeError(f"pdfersteller.sh failed: {rc}")
+ return rc
# schreibe Eintrag in Ergebnisdatei und erhöhe Gesamzbetrag
print(m.nachname, m.vorname, m.strasse, m.plz, m.ort, len(gg), beitrag, sep=";", file=self.csvfile )
self.gesamtbetrag += beitrag
self.anzahl += 1
+ return 0
+
# Erstelle PDFs
for m in mm:
- pe.erstellepdf(m)
+ rc = pe.erstellepdf(m)
+ if rc != 0:
+ return rc,0,0
# Ergebnis packen
rc = os.system(f'cd {build_path}; tar czf ergebnis.tgz ergebnis')
if rc != 0:
raise RuntimeError(f"Packen (tar) fehlgeschlagen: {rc}")
- return pe.anzahl, pe.gesamtbetrag
+ return 0, pe.anzahl, pe.gesamtbetrag
def vertragsliste_erstellen(verein, data_path):
build_path = os.path.join(data_path, "build")
path('<slug:verein>/mitglieder_auswahlen/', views.mitglieder_auswahlen),
path('<slug:verein>/kassenbrief/zusammenfassung', views.kassenbrief_zusammenfassung),
path('<slug:verein>/kassenbrief/erfolg', views.kassenbrief_erfolg),
+ path('<slug:verein>/kassenbrief/kein_erfolg', views.kassenbrief_kein_erfolg),
path('<slug:verein>/kassenbrief/download', views.kassenbrief_download),
path('<slug:verein>/ehmeldung/', views.ehmeldung),
path('<slug:verein>/vertragsliste/', views.vertragsliste),
data_path = vconf.getConfig("data_path", "/var/ehapp")
build_name = time.strftime("%Y%m%d%H%M%S", time.localtime())
- anzahl, gesamtbetrag = routines.pdfs_erstellen(request, verein, mitglieder, vorlage, data_path, build_name)
+ rc, anzahl, gesamtbetrag = routines.pdfs_erstellen(request, verein, mitglieder, vorlage, data_path, build_name)
+ if rc != 0:
+ return HttpResponseRedirect(f'/eh-app/{verein}/kassenbrief/kein_erfolg?rc={rc}')
response = HttpResponseRedirect(f'/eh-app/{verein}/kassenbrief/erfolg')
response.set_cookie("build_name", build_name)
response.set_cookie("anzahl", anzahl)
'gesamtbetrag' : request.COOKIES.get('gesamtbetrag'),
})
+def kassenbrief_kein_erfolg(request, verein):
+ rc = request.GET.get("rc", "unknown")
+ return HttpResponse(f"<html><body><h1>Die PDF-Erzeugung schlug fehl</h1><p>Fehlercode: {rc}</p><p>Kontaktieren Sie Ihren Systembetreuer.</p></body></html>")
+
@login_required(login_url=LOGIN_URL)
def kassenbrief_download(request, verein):
vconf = config.getInstance(verein)