From: Simon Wagner Date: Mon, 23 Jun 2025 15:03:34 +0000 (+0200) Subject: commit X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/c26bbbe8da70c2caee4efb18921fe349d1650f3c commit --- diff --git a/python/eh_util/eh_app/AWK/routines.py b/python/eh_util/eh_app/AWK/routines.py index fffbfaa..b09af1d 100644 --- a/python/eh_util/eh_app/AWK/routines.py +++ b/python/eh_util/eh_app/AWK/routines.py @@ -9,8 +9,8 @@ def handle_uploaded_file(csv_file): for chunk in csv_file.chunks(): destination.write(chunk) ''' -def aktualisiere_config(config, data, file): - +def aktualisiere_config(config, vorlagen_data, beitrag_data): + ''' if file: uploaded_file = file.name data_path = config.requireConfig("data_path") @@ -19,12 +19,14 @@ def aktualisiere_config(config, data, file): for chunk in file.chunks(): destination.write(chunk) config.setConfig("briefpapier", uploaded_file) + ''' + if vorlagen_data["vorlage"]: + config.setConfig("vorlage", vorlagen_data["vorlage"]) + if beitrag_data["basisbeitrag"]: + config.setConfig("beitrag_basis", beitrag_data["basisbeitrag"]) - if data["basisbeitrag"]: - config.setConfig("beitrag_basis", data["basisbeitrag"]) - - if data["zusatzbeitrag"]: - config.setConfig("beitrag_zusatz", data["zusatzbeitrag"]) + if beitrag_data["zusatzbeitrag"]: + config.setConfig("beitrag_zusatz", beitrag_data["zusatzbeitrag"]) def erstelle_ehmeldung(data): from PyPDF2 import PdfFileWriter, PdfFileReader diff --git a/python/eh_util/eh_app/forms.py b/python/eh_util/eh_app/forms.py index a67b75f..6cd6f1b 100644 --- a/python/eh_util/eh_app/forms.py +++ b/python/eh_util/eh_app/forms.py @@ -23,12 +23,19 @@ https://docs.djangoproject.com/en/2.2/topics/forms/ - Doku zu Fields: https://docs.djangoproject.com/en/2.2/ref/forms/fields/ ''' +class MitgliederForm(forms.Form): + vorlage = forms.ChoiceField(choices=()) + def __init__(self, *args, vorlagen=[('AB', 'ab'),('BC','bc')], **kwargs): + #self.templates = templates + super().__init__(*args, **kwargs) + self.fields['vorlage'].choices = vorlagen + class VorlagenForm(forms.Form): - template = forms.ChoiceField(choices=()) - def __init__(self, *args, templates=[('AB', 'ab'),('BC','bc')], **kwargs): + vorlage = forms.ChoiceField(choices=()) + def __init__(self, *args, vorlagen=[('AB', 'ab'),('BC','bc')], **kwargs): #self.templates = templates super().__init__(*args, **kwargs) - self.fields['template'].choices = templates + self.fields['vorlage'].choices = vorlagen class VorlagenVerwaltungForm(forms.Form): vorlagen_zu_loschen = forms.MultipleChoiceField( diff --git a/python/eh_util/eh_app/templates/kassenbrief.html b/python/eh_util/eh_app/templates/kassenbrief.html index 22e22f3..ba7254e 100644 --- a/python/eh_util/eh_app/templates/kassenbrief.html +++ b/python/eh_util/eh_app/templates/kassenbrief.html @@ -8,32 +8,32 @@

Kassenbriefvorlagen

-

{{fehlertext_template}}

+

{{fehlertext_vorlage}}

-
+ {% csrf_token %} {{vorlagen_form}}

Kassenbriefvorlagen verwalten -

-


Beiträge

+

{{fehlertext_beitrag}}

-
{{beitrag_form}}
-

-


+ +

Mitglieder

+

Für folgende Mitglieder soll der Kassenbrief erstellt werden:

+ +{{mitglieder_form}} +

-
-{% csrf_token %}

diff --git a/python/eh_util/eh_app/views.py b/python/eh_util/eh_app/views.py index 0d9f31d..e241e37 100644 --- a/python/eh_util/eh_app/views.py +++ b/python/eh_util/eh_app/views.py @@ -7,7 +7,7 @@ from django.template import loader from .AWK import config, routines #import .forms -from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm +from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm from eh_app.AWK.pdf_ersteller import PdfErsteller # Create your views here. @@ -25,7 +25,6 @@ except: def index(request, verein): template = loader.get_template("vbasis.html") - raise RuntimeError("blub") return HttpResponse(template.render({"verein" : verein}, request)) def vorlagen_verwalten(request, verein): @@ -63,38 +62,57 @@ def kassenbrief(request, verein): Diese Methode liest aus der Config die Einstellungen und zeigt sie an. POST: - Diese Methode bearbeitet den finalen "Erstellen" + Diese Methode + - überprüft, ob an den Einstellungen was verändert wurde und falls ja, ändert die Config + - bearbeitet den finalen "Erstellen" - Die Unterformulare (z.B. Beitrag ändern) landen in einer eigenen Methode, die die - Einstellungen in der Config ändert und dann diese hier mit GET aufruft. - ''' - ''' - --------------------------------------------------------------- - Templateauswahl - - Ausgewähltes Template: - Klappliste - Link -> Neue Templates installieren - --------------------------------------------------------------- ''' fehlertext_vorlage = "" + fehlertext_beitrag = "" vconf = config.getInstance(verein) beitrag_basis = vconf.getConfig("beitrag_basis", 0) beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0) - vorlagen_liste = ['T1'] - vorlagen_form = VorlagenForm(templates=vorlagen_liste) - beitrag_form = BeitragForm + vorlage_selected = vconf.getConfig("vorlage", "") + vorlagen_liste = [] + if os.path.isdir("eh_app/templates/"+verein): + dirlist = os.listdir("eh_app/templates/"+verein) # returns list + for t in dirlist: + vorlagen_liste.append((t,t)) if request.method == 'POST': - vorlagen_form = VorlagenForm(request.POST, request.FILES) + vorlagen_form = VorlagenForm(request.POST, request.FILES, vorlagen=vorlagen_liste) beitrag_form = BeitragForm(request.POST, request.FILES) if vorlagen_form.is_valid() and beitrag_form.is_valid(): routines.aktualisiere_config(vconf, vorlagen_form.cleaned_data, beitrag_form.cleaned_data) + return HttpResponseRedirect('erfolg') + ''' if not vorlagen_liste: fehlertext_vorlage = "Bitte Kassenbriefvorlage auswählen" else: routines.pdfs_erstellen(request, verein) return HttpResponseRedirect('erfolg') - return render(request, 'kassenbrief.html', {'vorlagen_form': vorlagen_form, 'beitrag_form': beitrag_form,'verein': verein, 'fehlertext' : fehlertext_vorlage}) + ''' + else: + beitrag_basis = vconf.getConfig("beitrag_basis", 0) + beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0) + # GET request + if vorlage_selected == "": + fehlertext_vorlage = "Bitte Vorlage auswählen" + if not vorlagen_liste: + fehlertext_vorlage = "Bitte Vorlagen in Vorlagenverzeichnis einfügen" + if beitrag_basis == 0 or beitrag_zusatz == 0: + fehlertext_beitrag = "Bitte Eingaben zu Basis- und Zusatzbeitrag vornehmen" + vorlagen_form = VorlagenForm(vorlagen=vorlagen_liste, initial={'vorlage':vorlage_selected}) + beitrag_form = BeitragForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz}) + mitglieder_form = MitgliederForm() + + return render(request, + 'kassenbrief.html', + {'vorlagen_form': vorlagen_form, + 'beitrag_form': beitrag_form, + 'mitglieder_form': mitglieder_form, + 'verein': verein, + 'fehlertext_vorlage' : fehlertext_vorlage, + 'fehlertext_beitrag' : fehlertext_beitrag}) def kassenbrief_alt(request, verein): fehlertext = ""