From: Michael Wagner Date: Sat, 28 Mar 2026 09:25:25 +0000 (+0100) Subject: Fehlerseite für PDF-Erzeugung X-Git-Tag: eigenheimer-util_0.1-1 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/refs/heads/master?ds=sidebyside;hp=--cc Fehlerseite für PDF-Erzeugung --- 9a2ae5196ee9cff6b80b59b6086b76e746ce0195 diff --git a/bin/pdfersteller.sh b/bin/pdfersteller.sh index f471c5a..5e2181b 100755 --- a/bin/pdfersteller.sh +++ b/bin/pdfersteller.sh @@ -11,7 +11,7 @@ file=$2 ergebnis_dir="ergebnis/" cd $dir -pdflatex $file +pdflatex -interaction nonstopmode $file # Schiebe Ergebnis in das Ergebnisverzeichnis erg_datei=${file%.tex}.pdf diff --git a/latex/brief.lco b/latex/brief.lco index 91817ba..49c5ae0 100644 --- a/latex/brief.lco +++ b/latex/brief.lco @@ -3,6 +3,7 @@ \RequirePackage{fix-cm} \RequirePackage[T1]{fontenc} % Ligaturschriften \RequirePackage[utf8]{inputenc} % Eingabezeichensatz +\RequirePackage{lmodern} \RequirePackage{graphicx} % Grafikpaket \RequirePackage{hyperref} \usepackage{wallpaper} % Hintergrundbilder diff --git a/python/eh_app/AWK/pdf_ersteller.py b/python/eh_app/AWK/pdf_ersteller.py index 9f673e9..5498f0e 100644 --- a/python/eh_app/AWK/pdf_ersteller.py +++ b/python/eh_app/AWK/pdf_ersteller.py @@ -25,7 +25,7 @@ class PdfErsteller(object): 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:] @@ -60,9 +60,11 @@ class PdfErsteller(object): 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 + diff --git a/python/eh_app/AWK/routines.py b/python/eh_app/AWK/routines.py index 6f76b2b..b26e7b2 100644 --- a/python/eh_app/AWK/routines.py +++ b/python/eh_app/AWK/routines.py @@ -196,14 +196,16 @@ def pdfs_erstellen(request, verein, mitglieder, templ_name, data_path, build_nam # 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") diff --git a/python/eh_app/urls.py b/python/eh_app/urls.py index ee38c82..d5e4b7a 100644 --- a/python/eh_app/urls.py +++ b/python/eh_app/urls.py @@ -9,6 +9,7 @@ urlpatterns = [ path('/mitglieder_auswahlen/', views.mitglieder_auswahlen), path('/kassenbrief/zusammenfassung', views.kassenbrief_zusammenfassung), path('/kassenbrief/erfolg', views.kassenbrief_erfolg), + path('/kassenbrief/kein_erfolg', views.kassenbrief_kein_erfolg), path('/kassenbrief/download', views.kassenbrief_download), path('/ehmeldung/', views.ehmeldung), path('/vertragsliste/', views.vertragsliste), diff --git a/python/eh_app/views.py b/python/eh_app/views.py index 600c7db..2180df5 100644 --- a/python/eh_app/views.py +++ b/python/eh_app/views.py @@ -277,7 +277,9 @@ def kassenbrief_zusammenfassung(request, verein): 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) @@ -304,6 +306,10 @@ def kassenbrief_erfolg(request, verein): 'gesamtbetrag' : request.COOKIES.get('gesamtbetrag'), }) +def kassenbrief_kein_erfolg(request, verein): + rc = request.GET.get("rc", "unknown") + return HttpResponse(f"

Die PDF-Erzeugung schlug fehl

Fehlercode: {rc}

Kontaktieren Sie Ihren Systembetreuer.

") + @login_required(login_url=LOGIN_URL) def kassenbrief_download(request, verein): vconf = config.getInstance(verein)