From: Michael Wagner Date: Fri, 20 Jun 2025 14:01:36 +0000 (+0200) Subject: pydev-s6 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/d362827336a02c07bf1cb3e0b7b246170414ffd8 pydev-s6 --- diff --git a/python/eh_util/eh_app/AWK/util.py b/python/eh_util/eh_app/AWK/util.py new file mode 100644 index 0000000..1948aad --- /dev/null +++ b/python/eh_util/eh_app/AWK/util.py @@ -0,0 +1,25 @@ +''' +Utilities für EHUtil +''' +import syslog +from http import cookies + +def schreibe_log(eintrag): + syslog.openlog("eh_util") + syslog.syslog(eintrag) + +def write_http_data(key, value): + cookie = cookies.SimpleCookie() + cookie[key] = value + cookie[key]["path"] = "/eh_util" + print(cookie) + +def lese_http_data(key): + import os + cookie_string = os.environ.get("HTTP_COOKIE") + cookie = cookies.SimpleCookie(cookie_string) + if key in cookie: + return cookie[key].value + return None + #return cookie[key] or None + \ No newline at end of file diff --git a/python/eh_util/eh_app/forms.py b/python/eh_util/eh_app/forms.py index a67b75f..b257b84 100644 --- a/python/eh_util/eh_app/forms.py +++ b/python/eh_util/eh_app/forms.py @@ -45,6 +45,30 @@ class VorlagenVerwaltungForm(forms.Form): 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 --git a/python/eh_util/eh_app/templates/kassenbrief.html b/python/eh_util/eh_app/templates/kassenbrief.html index 22e22f3..06e6451 100644 --- a/python/eh_util/eh_app/templates/kassenbrief.html +++ b/python/eh_util/eh_app/templates/kassenbrief.html @@ -30,6 +30,13 @@


+ +

Mitgliederauswahl

+
+ +{{mausw_form}} +
+

diff --git a/python/eh_util/eh_app/templates/mitglieder_auswahlen.html b/python/eh_util/eh_app/templates/mitglieder_auswahlen.html new file mode 100644 index 0000000..45fba5e --- /dev/null +++ b/python/eh_util/eh_app/templates/mitglieder_auswahlen.html @@ -0,0 +1,15 @@ + + + Siedlerverein-Verwaltung by WagnerTech UG + + +

Mitglieder auswählen

+ +{% csrf_token %} + +{{mausw_form}} +
+

+

+ + diff --git a/python/eh_util/eh_app/urls.py b/python/eh_util/eh_app/urls.py index d991005..438c25d 100644 --- a/python/eh_util/eh_app/urls.py +++ b/python/eh_util/eh_app/urls.py @@ -6,6 +6,7 @@ urlpatterns = [ path('', views.index), path('kassenbrief/', views.kassenbrief), path('vorlagen_verwalten/', views.vorlagen_verwalten), + path('mitglieder_auswahlen/', views.mitglieder_auswahlen), path('kassenbrief/erfolg', views.kassenbrief_erfolg), path('kassenbrief/download', views.kassenbrief_download), path('ehmeldung/', views.ehmeldung), diff --git a/python/eh_util/eh_app/views.py b/python/eh_util/eh_app/views.py index 0d9f31d..630ec56 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, MitgliederAuswahlForm from eh_app.AWK.pdf_ersteller import PdfErsteller # Create your views here. @@ -56,6 +56,34 @@ def vorlagen_verwalten(request, verein): ''' +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): ''' @@ -84,9 +112,11 @@ def kassenbrief(request, verein): 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: @@ -94,7 +124,7 @@ def kassenbrief(request, verein): 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}) + return render(request, 'kassenbrief.html', {'vorlagen_form': vorlagen_form, 'beitrag_form': beitrag_form, 'mausw_form': mausw_form, 'verein': verein, 'fehlertext' : fehlertext_vorlage}) def kassenbrief_alt(request, verein): fehlertext = ""