]> wagnertech.de Git - SVBaL.git/commitdiff
pydev-s6
authorMichael Wagner <michael@wagnertech.de>
Fri, 20 Jun 2025 14:01:36 +0000 (16:01 +0200)
committerMichael Wagner <michael@wagnertech.de>
Fri, 20 Jun 2025 14:01:36 +0000 (16:01 +0200)
python/eh_util/eh_app/AWK/util.py [new file with mode: 0644]
python/eh_util/eh_app/forms.py
python/eh_util/eh_app/templates/kassenbrief.html
python/eh_util/eh_app/templates/mitglieder_auswahlen.html [new file with mode: 0644]
python/eh_util/eh_app/urls.py
python/eh_util/eh_app/views.py

diff --git a/python/eh_util/eh_app/AWK/util.py b/python/eh_util/eh_app/AWK/util.py
new file mode 100644 (file)
index 0000000..1948aad
--- /dev/null
@@ -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
index a67b75f708f3630c6ae5be7839ad5f596a1d6748..b257b848307ab7609a746870d08f6f2189f47674 100644 (file)
@@ -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=())
index 22e22f37a9c37a905428e3b2fd82c101da2e3dca..06e645164ab0a575cbe508717d42de60b7fd2038 100644 (file)
 <p><input type="submit" value="Speichern"/>
 </form>
 <hr>
+
+<h2>Mitgliederauswahl</h2>
+<form action="/{{verein}}/template_andern/" method="post" enctype="multipart/form-data">
+<table>
+{{mausw_form}}
+</table>
+</form>
 <hr>
 
 <form action="/{{verein}}/kassenbrief/" method="post" enctype="multipart/form-data">
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 (file)
index 0000000..45fba5e
--- /dev/null
@@ -0,0 +1,15 @@
+<html>
+<head>
+       <title>Siedlerverein-Verwaltung by WagnerTech UG</title>
+</head>
+<body>
+<h1>Mitglieder auswählen</h1>
+<form action="/{{verein}}/vorlagen_verwalten/" method="post" enctype="multipart/form-data">
+{% csrf_token %}
+<table>
+{{mausw_form}}
+</table>
+<p><input type="submit" value="Auswählen"/>
+</form>
+</body>
+</html>
index d991005fea78a02c577ed517ad935a505da041ac..438c25dea0b1c3fb689875d47996f2b013e941a9 100644 (file)
@@ -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),
index 0d9f31d0540537d93495f5a4bceb3c7124294c6f..630ec56d88999be297586f871f4a246d21a87b1d 100644 (file)
@@ -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):
     <Knopf"Installieren">
     '''
 
+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
+    
+    <Dateiauswahlknopf>
+    <Knopf"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 = ""