]> wagnertech.de Git - SVBaL.git/commitdiff
Fehlerseite für PDF-Erzeugung master eigenheimer-util_0.1-1
authorMichael Wagner <mail@wagnertech.de>
Sat, 28 Mar 2026 09:25:25 +0000 (10:25 +0100)
committerMichael Wagner <mail@wagnertech.de>
Sat, 28 Mar 2026 09:25:25 +0000 (10:25 +0100)
bin/pdfersteller.sh
latex/brief.lco
python/eh_app/AWK/pdf_ersteller.py
python/eh_app/AWK/routines.py
python/eh_app/urls.py
python/eh_app/views.py

index f471c5ab799d6ac36aa594024c0265add5dec326..5e2181b5b38e3bdaa135c341d308886ccc203fd3 100755 (executable)
@@ -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
index 91817baff8e7d12f0cb10d9810bd1fa4f53ce72f..49c5ae0c45f1916fec0304f6714d7bb031e52f54 100644 (file)
@@ -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
index 9f673e9d3b201fb9db757e4869054e1a6476e5d3..5498f0e6162499c9940444363d02eadb6924ef73 100644 (file)
@@ -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
+    
index 6f76b2bf9630143ca6ed6218da162f083857abdd..b26e7b2c269067339c543af6fb7cbde3e762f210 100644 (file)
@@ -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")
index ee38c8296b1808584749efb6770e6eea82c8f1c0..d5e4b7a9fe71130b5034eca65428acf68c42ddf3 100644 (file)
@@ -9,6 +9,7 @@ urlpatterns = [
     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),
index 600c7db2f179de0216837b13ee9786f994b7653f..2180df5e12202ad5bd849e3449136d53833143b4 100644 (file)
@@ -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"<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)