From: Simon Wagner Date: Mon, 23 Jun 2025 15:17:00 +0000 (+0200) Subject: Conflicts solved X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/9ed8594047c54ebef5d0675e9896d49cc2b0374a?hp=-c Conflicts solved --- 9ed8594047c54ebef5d0675e9896d49cc2b0374a diff --combined python/eh_util/eh_app/AWK/routines.py index b09af1d,fffbfaa..9fccdc7 --- a/python/eh_util/eh_app/AWK/routines.py +++ b/python/eh_util/eh_app/AWK/routines.py @@@ -9,8 -9,8 +9,9 @@@ def handle_uploaded_file(csv_file) for chunk in csv_file.chunks(): destination.write(chunk) ''' - def aktualisiere_config(config, vorlagen_data, beitrag_data): - ''' ++ + def aktualisiere_config(config, data, file): + if file: uploaded_file = file.name data_path = config.requireConfig("data_path") @@@ -19,14 -19,12 +20,12 @@@ 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 beitrag_data["zusatzbeitrag"]: - config.setConfig("beitrag_zusatz", beitrag_data["zusatzbeitrag"]) ++ if data["vorlage"]: ++ config.setConfig("vorlage", data["vorlage"]) + if data["basisbeitrag"]: + config.setConfig("beitrag_basis", data["basisbeitrag"]) - + if data["zusatzbeitrag"]: + config.setConfig("beitrag_zusatz", data["zusatzbeitrag"]) def erstelle_ehmeldung(data): from PyPDF2 import PdfFileWriter, PdfFileReader diff --combined python/eh_util/eh_app/forms.py index 6cd6f1b,b257b84..b7625af --- a/python/eh_util/eh_app/forms.py +++ b/python/eh_util/eh_app/forms.py @@@ -23,19 -23,12 +23,13 @@@ https://docs.djangoproject.com/en/2.2/t - 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( @@@ -52,6 -45,30 +46,30 @@@ class BeitragForm(forms.Form): basisbeitrag = forms.IntegerField() zusatzbeitrag = forms.IntegerField(label="Beitrag für Zusatzgrundstück") + + class MitgliederForm(forms.Form): + mg_auswahl = forms.ChoiceField( + choices = (), + widget=forms.RadioSelect, + label = "" + ) + def __init__(self, *args, zul="", **kwargs): + #self.templates = templates + super().__init__(*args, **kwargs) + self.zulstr = zul + self.fields['mg_auswahl'].choices = [("alle","Alle Mitglieder"), ("zul",f"Zuletzt ausgewählte Mitglieder: {zul}")] + + class MitgliederAuswahlForm(forms.Form): + mg_auswahl = forms.MultipleChoiceField( + widget=forms.CheckboxSelectMultiple, + choices=(), + label="" + ) + def __init__(self, *args, mitglieder=(), **kwargs): + #self.templates = templates + super().__init__(*args, **kwargs) + self.fields['mg_auswahl'].choices = mitglieder + class KassenbriefForm_alt(forms.Form): #briefpapier = forms.FileField(label='Briefpapier ändern:', required=False) template = forms.ChoiceField(choices=()) diff --combined python/eh_util/eh_app/templates/kassenbrief.html index ba7254e,06e6451..fc978f1 --- a/python/eh_util/eh_app/templates/kassenbrief.html +++ b/python/eh_util/eh_app/templates/kassenbrief.html @@@ -8,32 -8,39 +8,37 @@@

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:

+

Mitgliederauswahl

+
- {{mitglieder_form}} + {{mausw_form}}
+

+
+ {% csrf_token %}

diff --combined python/eh_util/eh_app/views.py index e241e37,630ec56..0cf81ab --- a/python/eh_util/eh_app/views.py +++ b/python/eh_util/eh_app/views.py @@@ -7,7 -7,7 +7,8 @@@ from django.template import loade from .AWK import config, routines #import .forms - from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm ++ + from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm, MitgliederAuswahlForm from eh_app.AWK.pdf_ersteller import PdfErsteller # Create your views here. @@@ -25,6 -25,7 +26,7 @@@ 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): @@@ -55,6 -56,34 +57,34 @@@ ''' + def mitglieder_auswahlen(request, verein): + # TODO vorlagen_liste durch Dateioperationen aufbauen. S. kassenbrief_alt + # Die finale Liste muss dann folgende Form haben: + mitglieder_liste = [("12","Wagler"),("13","Maier")] + + if request.method == 'POST': + # Form auswerten + # Auswahl in Cookie schreiben, s. util.py + + # Wenn alles gut gegangen, zurück zum Kassenbrief + return HttpResponseRedirect(f'/{verein}/kassenbrief') + else: + mausw_form = MitgliederAuswahlForm(mitglieder=mitglieder_liste) + + template = loader.get_template("mitglieder_auswahlen.html") + return HttpResponse(template.render( + { + "verein" : verein, + "mausw_form" : mausw_form }, + request)) + ''' + --------------------------------------------------------------- + Neue Templates installieren + + + + ''' + #@login_required def kassenbrief(request, verein): ''' @@@ -62,57 -91,40 +92,90 @@@ Diese Methode liest aus der Config die Einstellungen und zeigt sie an. POST: ++<<<<<<< HEAD + Diese Methode + - überprüft, ob an den Einstellungen was verändert wurde und falls ja, ändert die Config + - bearbeitet den finalen "Erstellen" + + ''' + fehlertext_vorlage = "" + fehlertext_beitrag = "" + vconf = config.getInstance(verein) + beitrag_basis = vconf.getConfig("beitrag_basis", 0) + beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0) + 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=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') + ''' ++======= + Diese Methode 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 = "" + 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 + mausw_form = MitgliederForm(zul="12,45,334") + if request.method == 'POST': + vorlagen_form = VorlagenForm(request.POST, request.FILES) + beitrag_form = BeitragForm(request.POST, request.FILES) + mausw_form = MitgliederForm(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) if not vorlagen_liste: fehlertext_vorlage = "Bitte Kassenbriefvorlage auswählen" else: routines.pdfs_erstellen(request, verein) return HttpResponseRedirect('erfolg') + ''' + 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}) ++======= + return render(request, 'kassenbrief.html', {'vorlagen_form': vorlagen_form, 'beitrag_form': beitrag_form, 'mausw_form': mausw_form, 'verein': verein, 'fehlertext' : fehlertext_vorlage}) ++>>>>>>> origin/michael def kassenbrief_alt(request, verein): fehlertext = ""