]> wagnertech.de Git - SVBaL.git/blobdiff - python/eh_util/eh_app/views.py
commit
[SVBaL.git] / python / eh_util / eh_app / views.py
index 6487eee3850e66cf8a69b5dee7325be86cbeba01..e241e3748b8e69d6b33e7286893c5cdd48f27501 100644 (file)
@@ -1,12 +1,14 @@
 import os,sys
 
+from django.contrib.auth.decorators import login_required
 from django.http import HttpResponse, HttpResponseRedirect, FileResponse
 from django.shortcuts import render
 from django.template import loader
 
 from .AWK import config, routines
 #import .forms 
-from .forms import EhmeldungForm, KassenbriefForm
+from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm
+from eh_app.AWK.pdf_ersteller import PdfErsteller
 
 # Create your views here.
 
@@ -25,58 +27,154 @@ def index(request, verein):
     template = loader.get_template("vbasis.html")
     return HttpResponse(template.render({"verein" : verein}, request))
 
-def tex_bearbeiten(request, verein):
-    template = loader.get_template("brief.tex")
-    tex_bearbeitet = template.render({"Anrede" : 'Frau'}, {"Nachname" : 'Wagner'}, 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, 
+            "vorlagen_form" : vorlagen_form }, 
+        request))
+    '''
+    ---------------------------------------------------------------
+    Neue Templates installieren
+    
+    <Dateiauswahlknopf>
+    <Knopf"Installieren">
+    '''
+
+#@login_required
 def kassenbrief(request, verein):
+    '''
+    GET:
+    Diese Methode liest aus der Config die Einstellungen und zeigt sie an.
+    
+    POST: 
+    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')
+            '''
+            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})
+   
+def kassenbrief_alt(request, verein):
     fehlertext = ""
     # Hole Daten aus der Config
     vconf = config.getInstance(verein)
-    briefpapier    = vconf.getConfig("briefpapier")
     beitrag_basis  = vconf.getConfig("beitrag_basis", 0)
     beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
-    briefpapier_label = briefpapier
-    if not briefpapier:
-        briefpapier_label = "Kein Briefpapier ausgewäht"
+
+    # suche Templates
+    import os
+    dirlist = None
+    if os.path.isdir("eh_app/templates/"+verein):
+        dirlist = os.listdir("eh_app/templates/"+verein) # returns list
+    if dirlist:
+        template_list = []
+        for t in dirlist:
+            template_list.append((t,t))
     
-    # if this is a POST request we need to process the form data
-    if request.method == 'POST':
+            # if this is a POST request we need to process the form data
+        if request.method == 'POST':
         # create a form instance and populate it with data from the request:
-        form = KassenbriefForm(request.POST, request.FILES)
-        # check whether it's valid:
-        if form.is_valid():
-            # bei Änderungen Konfiguration aktualisieren
-            routines.aktualisiere_config(vconf, form.cleaned_data)
+            form = KassenbriefForm(request.POST, request.FILES, dirlist)
+            # check whether it's valid:
+            if form.is_valid():
+                # bei Änderungen Konfiguration aktualisieren
+                routines.aktualisiere_config(vconf, form.cleaned_data, request.FILES.get('briefpapier_neu', None))
+            
+                #Stammdaten neu aus Datenbank lesen und prüfen
+                briefpapier    = vconf.getConfig("briefpapier")
+                beitrag_basis  = int(vconf.getConfig("beitrag_basis", 0))
+                beitrag_zusatz = int(vconf.getConfig("beitrag_zusatz", 0))
+                briefpapier_label = briefpapier
+                if not briefpapier:
+                    briefpapier_label = "Kein Briefpapier ausgewäht"
             
-            #Stammdaten neu aus Datenbank lesen und prüfen
-            briefpapier    = vconf.getConfig("briefpapier")
-            beitrag_basis  = vconf.getConfig("beitrag_basis", 0)
-            beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
-                        
-            # prüfen ob Werte gefüllt
-            if briefpapier == "":
-                fehlertext = "Bitte Briefpapier auswählen."
-            elif beitrag_basis == 0 & beitrag_zusatz == 0:
-                fehlertext = "Bitte Basisbeitrag und Zusatzbeitrag ausfüllen."
-            elif beitrag_basis == 0:
-                fehlertext = "Bitte Basisbeitrag ausfüllen."
-            elif beitrag_zusatz == 0:
-                fehlertext = "Bitte Zusatzbeitrag ausfüllen."
+                    # prüfen ob Werte gefüllt
+                if briefpapier is None:
+                    fehlertext = "Bitte Briefpapier auswählen."
+                elif beitrag_basis == 0 and beitrag_zusatz == 0:
+                    fehlertext = "Bitte Basisbeitrag und Zusatzbeitrag ausfüllen."
+                elif beitrag_basis == 0:
+                    fehlertext = "Bitte Basisbeitrag ausfüllen."
+                elif beitrag_zusatz == 0:
+                    fehlertext = "Bitte Zusatzbeitrag ausfüllen."
             
-            # wenn Werte gefüllt 
-            else:
-                routines.erstellepdf('Hallo Welt')
+                # wenn Werte gefüllt 
+                else:
+                    routines.pdfs_erstellen(request, verein)
                 
-                # redirect to a new URL:
-                return HttpResponseRedirect('erfolg')
+                    # redirect to a new URL:
+                    return HttpResponseRedirect('erfolg')
 
-    # if a GET (or any other method) we'll create a blank form
+
+        # if a GET (or any other method) we'll create a blank form
+        else:
+            form = KassenbriefForm(templates=template_list, initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
+            #form = KassenbriefForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
+            return render(request, 'kassenbrief.html', {'form': form, 'verein': verein, 'fehlertext' : fehlertext})
     else:
-        form = KassenbriefForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
+        fehlertext = "Bitte Templates anlegen."
+        return render(request, 'fehler.html', {'verein': verein, 'fehlertext' : fehlertext})
 
-    return render(request, 'kassenbrief.html', {'form': form, 'verein': verein, 'briefpapier': briefpapier_label, 'fehlertext' : fehlertext})
     
     '''
     template = loader.get_template("kassenbrief.html")