From: Michael Wagner Date: Mon, 24 Mar 2025 09:31:02 +0000 (+0100) Subject: bazuna X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/a1ada2c359ac81c9fd262cea095f4440bf533efc bazuna --- diff --git a/bin/pdfersteller b/bin/pdfersteller new file mode 100755 index 0000000..9ba870d --- /dev/null +++ b/bin/pdfersteller @@ -0,0 +1,4 @@ +#/bin/bash + +cd /home/sparky2021/SVBaL/latex +pdflatex $1 diff --git a/latex/brief.lco b/latex/brief.lco index ab870ba..91817ba 100644 --- a/latex/brief.lco +++ b/latex/brief.lco @@ -9,15 +9,17 @@ \hypersetup{pdfpagemode=None} \KOMAoptions{ paper=a4, - pagenumber=botcenter, + pagenumber=false, % fromalign=right, % fromrule=afteraddress, % fromphone, % fromfax, -% fromlogo,fromurl,fromemail, + fromlogo, +% fromurl,fromemail, % backaddress, foldmarks, % headsepline,footsepline, + headsepline=true, % Linie unter dem Header der Folgeseite enlargefirstpage, parskip=half } @@ -35,13 +37,17 @@ \setkomavar{frombank}{Eine Bank\\IBAN~123\,45\,678} \setkomavar{place}{München} \setkomavar{signature}{Michael Wagner\\1.Vorsitzender} -\setkomavar{fromlogo}{\parbox[b]{8cm}{\usekomafont{fromaddress}% - {\mbox{\LARGE \bfseries Dr.\ rer.\ nat.\ Joachim~Schlosser}} - \smallskip} -} +%\setkomavar{fromlogo}{\parbox[b]{8cm}{\usekomafont{fromaddress}% +% {\mbox{\LARGE \bfseries Dr.\ rer.\ nat.\ Joachim~Schlosser}} +% \smallskip} +%} \setkomafont{backaddress}{\sffamily} \setkomafont{fromaddress}{\sffamily} -\addtokomafont{fromname}{\scriptsize} +%\setkomavar{fromlogo}{\parbox[b]{8cm}{\includegraphics[width=2cm]{logo.jpeg}}} +\setkomavar{fromlogo}{\includegraphics[width=2cm]{logo.jpeg}} +\setkomavar{nexthead}{\mbox{\textbf{Siedlervereinigung Berg am Laim}} \usekomavar{fromlogo}} +\headheight=2cm +\setkomafont{fromname}{\sffamily} \addtokomafont{fromaddress}{\scriptsize} \pagestyle{headings} %\CenterWallPaper{1}{MitgliederausweisSVBaLVorlage_leer_v2.pdf} diff --git a/latex/brief.tex b/latex/brief.tex deleted file mode 100644 index 897c89d..0000000 --- a/latex/brief.tex +++ /dev/null @@ -1,59 +0,0 @@ -\documentclass{scrlttr2} -\LoadLetterOption{brief} -\setkomavar{date}{\vspace*{-6\baselineskip}\today} -\begin{document} -\begin{letter}{ - %\today \par \vspace*{2\baselineskip} - \vspace*{11 mm}\small{Frau\\Erika Schwarze\\Wildenholzenerstr. 14\\81617 München}} - -\opening{\par \vspace*{3\baselineskip}Liebe Vereinsmitglieder!} -\CenterWallPaper{1}{../Aktuell/BriefpapierSVBaLVorlage.pdf} -Lass mich Dir die Welt zeigen,\\ -wie ich sie sehe ...\\ -Lass mich Deine Gefühle spüren,\\ -sodass ich sie verstehe ...\\ -Lass Dich in meine Arme sinken,\\ -Du bist nicht allein ...\\ -Lass Dich von meinen Träumen berühren,\\ -ich will bei dir sein. - -Ulrich Stamm - -\vspace*{1 cm}\hrule -\vspace*{2 cm} -In ungewissen Zeiten schafft die Beziehung zu einem geliebten Menschen uns Sicherheit, mit der wir voll Zuversicht ins neue Jahr gehen können. - -Der Vorstand der Siedlervereinigung Berg am Laim wünscht Ihnen gesegnete Weihnacht und viel Zuversicht im neuen Jahr. - -\pagebreak -\ClearWallPaper - -\textbf{Nachrichten aus dem Verband} -\begin{itemize} -\item Baumschutzverordnung und Wärmeplan - - Die Vorstände der Siedlervereine des Münchner Ostens sind zu diesen im Gespräch mit Stadträten und Ausschüssen. Gerne halten wir Sie bei neuen Entwicklungen auf dem Laufenden. - - Am 6.2.2025 um 18:00h hat der Eigenheimer Waldperlach-Neubiberg das Referat für Klima- und Umweltschutz im Leiberheim zu Gast. In einem Tandemvortrag soll die Wärmeplanung für dieses Stadtgebiet vorgestellt und im Anschluss diskutiert werden. Auch interessierte Vereinsmitglieder sind herzlich eingeladen. - -\item Neuer Justitiar Karl Schmelzing - - Nach langjähriger Tätigkeit für den Verband ist Rainer Schmidt in den Ruhestand gegangen. Für rechtliche Fragen steht nun sein Nachfolger Hr. Karl Schmelzing zur Verfügung. - -\item Wärmepumpen und Wallboxen - - Wärmepumpen und Wallboxen benötigen viel Strom, der durch das existierende Stromnetz den Verbrauchern zur Verfügung gestellt werden muss. Wir hören bereits von Fällen, dass die Stadtwerke die Installation solcher Einrichtungen ablehnen, da sie sonst eine Überlastung der Netze befürchten. - - Bitte teilen Sie uns Ihre Erfahrungen zu diesen Themen mit, damit wir einen Überblick über die Situation erhalten. - Vergünstigungen - -\item Wir weisen nochmal auf die bereits im Sommerrundbrief beschriebenen Vergünstigungen für die Mitglieder des Eihenheimerverbandes hin: Da sind zum einen Handelsunternehmen im Münchner Osten, die uns Rabatte gewähren, zum anderen gibt es die "Eigenheimervergünstigungen" auf der Internetseite des Verbands. Auf Rückfrage teile ich Ihnen Gerne nochmal die Möglichkeiten mit. - - -\item Mitglieder werben Mitglieder - - Ich darf Sie an die 20.- EUR Prämie für die Werbung neuer Mitglieder erinnern. -\end{itemize} -%\closing{Viele Grüße} -\end{letter} -\end{document} diff --git a/latex/brief.tex b/latex/brief.tex new file mode 120000 index 0000000..289ee89 --- /dev/null +++ b/latex/brief.tex @@ -0,0 +1 @@ +brief_202503.tex \ No newline at end of file diff --git a/python/eh_util/eh_app/AWK/pdf_ersteller.py b/python/eh_util/eh_app/AWK/pdf_ersteller.py new file mode 100644 index 0000000..3ad438e --- /dev/null +++ b/python/eh_util/eh_app/AWK/pdf_ersteller.py @@ -0,0 +1,20 @@ +class PdfErsteller(object): + ''' + Klasse zur Erstellung von PDFs + ''' + + + def __init__(self, request, template, pfad): + self.request = request + self.template = template + self.pfad = pfad + + def erstellepdf(self, m): + tex_bearbeitet = self.template.render({"Anrede" : 'Frau', "Nachname" : 'Wagner'}, self.request) + + with open(f'{self.pfad}/{m.nachname}_brief.tex', 'w') as f: # öffnet ein neues Dokument mit dem Namen test.tex + f.write(tex_bearbeitet) # schreibt in dieses neue Dokument + + # AUfruf PDF latex tex -> pdf + import subprocess + subprocess.run(["bash", "../../bin/pdfersteller", f'{m.nachname}_brief.tex']) diff --git a/python/eh_util/eh_app/AWK/routines.py b/python/eh_util/eh_app/AWK/routines.py index c608328..1cf27bc 100644 --- a/python/eh_util/eh_app/AWK/routines.py +++ b/python/eh_util/eh_app/AWK/routines.py @@ -1,4 +1,5 @@ import os +from eh_app.AWK import config ''' def handle_uploaded_file(csv_file): csv_file_name = str(csv_file) @@ -25,12 +26,6 @@ def aktualisiere_config(config, data, file): if data["zusatzbeitrag"]: config.setConfig("beitrag_zusatz", data["zusatzbeitrag"]) -def erstellepdf(text): - with open(r'G:\SVBaL\python\eh_util\eh_app\test.tex', 'w') as f: # öffnet ein neues Dokument mit dem Namen test.tex - f.write(text) # schreibt in dieses neue Dokument - - # TODO: AUfruf PDF latex tex -> pdf - def erstelle_ehmeldung(data): from PyPDF2 import PdfFileWriter, PdfFileReader from datetime import date @@ -82,3 +77,20 @@ def erstelle_ehmeldung(data): output.write(output_stream) output_stream.close() +def pdfs_erstellen(request, verein): + from django.template import loader + + # lese alle Miglieder + cf = config.getInstance("svbal") + cf.setConfig("DataFile", "../../Test/etc/Export.csv") + from eh_app.qmodels import Mitglied + mm = Mitglied.objects.all() + template = loader.get_template("brief.tex") + + from eh_app.AWK.pdf_ersteller import PdfErsteller + pe = PdfErsteller(request, template, "../../latex") + + # Erstelle PDFs + for m in mm: + pe.erstellepdf(m) + diff --git a/python/eh_util/eh_app/views.py b/python/eh_util/eh_app/views.py index 5137ace..820718a 100644 --- a/python/eh_util/eh_app/views.py +++ b/python/eh_util/eh_app/views.py @@ -8,6 +8,7 @@ from django.template import loader from .AWK import config, routines #import .forms from .forms import EhmeldungForm, KassenbriefForm +from eh_app.AWK.pdf_ersteller import PdfErsteller # Create your views here. @@ -26,11 +27,7 @@ def index(request, verein): template = loader.get_template("vbasis.html") return HttpResponse(template.render({"verein" : verein}, request)) -def tex_bearbeiten(request, verein): - template = loader.get_template("brief.tex") - tex_bearbeitet = template.render({"Anrede" : 'Frau'}, {"Nachname" : 'Wagner'}, request) - -@login_required +#@login_required def kassenbrief(request, verein): fehlertext = "" # Hole Daten aus der Config @@ -71,7 +68,7 @@ def kassenbrief(request, verein): # wenn Werte gefüllt else: - routines.erstellepdf('Hallo Welt') + routines.pdfs_erstellen(request, verein) # redirect to a new URL: return HttpResponseRedirect('erfolg')