X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/blobdiff_plain/c59f6a9e89733c57db4985ab6f9958143231715d..c26bbbe8da70c2caee4efb18921fe349d1650f3c:/python/eh_util/eh_app/views.py diff --git a/python/eh_util/eh_app/views.py b/python/eh_util/eh_app/views.py index 820718a..e241e37 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, KassenbriefForm +from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm from eh_app.AWK.pdf_ersteller import PdfErsteller # Create your views here. @@ -27,57 +27,154 @@ def index(request, verein): template = loader.get_template("vbasis.html") 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, + "vorlagen_form" : vorlagen_form }, + request)) + ''' + --------------------------------------------------------------- + Neue Templates 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, request.FILES.get('briefpapier_neu', None)) + 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 = 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" - # 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." + # 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.pdfs_erstellen(request, verein) + # 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")