]> wagnertech.de Git - SVBaL.git/commitdiff
commit
authorSimon Wagner <simon@wagnertech.de>
Mon, 23 Jun 2025 15:03:34 +0000 (17:03 +0200)
committerSimon Wagner <simon@wagnertech.de>
Mon, 23 Jun 2025 15:03:34 +0000 (17:03 +0200)
python/eh_util/eh_app/AWK/routines.py
python/eh_util/eh_app/forms.py
python/eh_util/eh_app/templates/kassenbrief.html
python/eh_util/eh_app/views.py

index fffbfaa50962ec660ac72c9584364bf8b635ed2e..b09af1d60c1c93bb83cf483046c5d470b4aa1147 100644 (file)
@@ -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
index a67b75f708f3630c6ae5be7839ad5f596a1d6748..6cd6f1b9e6656253126f699097487bc03cf970ed 100644 (file)
@@ -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(
index 22e22f37a9c37a905428e3b2fd82c101da2e3dca..ba7254efead531cda774a550317a10aadd83c85a 100644 (file)
@@ -8,32 +8,32 @@
 <hr>
 
 <h2>Kassenbriefvorlagen</h2>
-<p class="fehler">{{fehlertext_template}}</p>
+<p class="fehler">{{fehlertext_vorlage}}</p>
 
-<form action="/{{verein}}/template_andern/" method="post" enctype="multipart/form-data">
+<form action="/{{verein}}/kassenbrief/" method="post" enctype="multipart/form-data">
 {% csrf_token %}
 <table>
 {{vorlagen_form}}
 </table>
 <br>
 <a href = "/{{verein}}/vorlagen_verwalten/">Kassenbriefvorlagen verwalten</a>
-<p><input type="submit" value="Speichern"/>
-</form>
 
 <hr>
 <h2>Beiträge</h2>
+ <p class="fehler">{{fehlertext_beitrag}}</p>
  
-<form action="/{{verein}}/template_andern/" method="post" enctype="multipart/form-data">
 <table>
 {{beitrag_form}}
 </table>
-<p><input type="submit" value="Speichern"/>
-</form>
 <hr>
+
+<h2>Mitglieder</h2>
+<p>Für folgende Mitglieder soll der Kassenbrief erstellt werden:</p>
+<table>
+{{mitglieder_form}}
+</table>
 <hr>
 
-<form action="/{{verein}}/kassenbrief/" method="post" enctype="multipart/form-data">
-{% csrf_token %}
 <p><input type="submit" value="Erstellen"/>
 </form>
 </body>
index 0d9f31d0540537d93495f5a4bceb3c7124294c6f..e241e3748b8e69d6b33e7286893c5cdd48f27501 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
 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: <Wert aus Config>
-    Klappliste <Knopf"Template ändern">
-    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 = ""