]> wagnertech.de Git - SVBaL.git/blobdiff - python/eh_util/eh_app/views.py
commit
[SVBaL.git] / python / eh_util / eh_app / views.py
index cfcd7c219f3064a67c4e7d1f76890bbf7600c71d..e241e3748b8e69d6b33e7286893c5cdd48f27501 100644 (file)
@@ -7,9 +7,8 @@ from django.template import loader
 
 from .AWK import config, routines
 #import .forms 
-from .forms import EhmeldungForm, VorlagenForm, BeitragForm
+from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm
 from eh_app.AWK.pdf_ersteller import PdfErsteller
-from test.test_codeccallbacks import NoEndUnicodeDecodeError
 
 # Create your views here.
 
@@ -29,8 +28,25 @@ def index(request, verein):
     return HttpResponse(template.render({"verein" : verein}, request))
 
 def vorlagen_verwalten(request, verein):
+    # TODO vorlagen_liste durch Dateioperationen aufbauen. S. kassenbrief_alt
+    # Die finale Liste muss dann folgende Form haben:
+    vorlagen_liste = [("vorlage1.tex","vorlage1"),("vorlage2.tex","vorlage2")]
+
+    if request.method == 'POST':
+        # Form auswerten
+        # Verarbeitung in routines.py aufrufen
+
+        # Wenn alles gut gegangen, zurück zum Kassenbrief
+        return HttpResponseRedirect(f'/{verein}/kassenbrief')
+    else:
+        vorlagen_form = VorlagenVerwaltungForm(vorlagen=vorlagen_liste)
+        
     template = loader.get_template("vorlagen_verwalten.html")
-    return HttpResponse(template.render({"verein" : verein}, request))
+    return HttpResponse(template.render(
+        {
+            "verein" : verein, 
+            "vorlagen_form" : vorlagen_form }, 
+        request))
     '''
     ---------------------------------------------------------------
     Neue Templates installieren
@@ -38,7 +54,7 @@ def vorlagen_verwalten(request, verein):
     <Dateiauswahlknopf>
     <Knopf"Installieren">
     '''
-    pass
+
 #@login_required
 def kassenbrief(request, verein):
     '''
@@ -46,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"
-    
-    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
+    Diese Methode 
+    - überprüft, ob an den Einstellungen was verändert wurde und falls ja, ändert die Config 
+    - bearbeitet den finalen "Erstellen"
     
-    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 = ""