X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/blobdiff_plain/a8b76f0fc57759b3af43574a242f89bb198dccb3..f23bc2cc8235d2ff1efb4ba360862ef10f208067:/python/eh_app/views.py diff --git a/python/eh_app/views.py b/python/eh_app/views.py index 600c7db..b8315bb 100644 --- a/python/eh_app/views.py +++ b/python/eh_app/views.py @@ -63,6 +63,34 @@ def erstelle_vorlagen_liste(verein): vorlagen_liste.append((t,tpl_name_wo_ext)) return vorlagen_liste +def check(request, verein): + # überprüft, ob für den gegebenen Verein alles angelegt ist + check_erg = {} + vconf = config.getInstance(verein) + data_path = vconf.getConfig("data_path") + check_erg["data_path"] = "ok" + if not data_path: + data_path = f"auf /var/mysite/eh_app/{verein}" + vconf.setConfig("data_path", data_path) + check_erg["data_path"] = f"auf /var/mysite/eh_app/{verein} gesetzt" + + ehappdir = vconf.getConfig("ehappdir", "/opt/eh_app") + vereinchecker = f"{ehappdir}/bin/ehapp-verein-check.sh" + check_erg["vereinchecker"] = "ok" + if not os.path.exists(vereinchecker): + check_erg["vereinchecker"] = "ehapp-verein-check.sh nicht gefunden" + + rc = os.system(f'{vereinchecker} {data_path}') + if rc != 0: + check_erg["vereinchecker"] = f"ehapp-verein-check.sh fehlgeschlagen: {rc}" + + template = loader.get_template("check.html") + return HttpResponse(template.render( + { + "verein" : verein, + "check_erg" : check_erg }, + request)) + @login_required(login_url=LOGIN_URL) def vorlagen_verwalten(request, verein): vorlagen_liste = erstelle_vorlagen_liste(verein) @@ -277,7 +305,9 @@ def kassenbrief_zusammenfassung(request, verein): data_path = vconf.getConfig("data_path", "/var/ehapp") build_name = time.strftime("%Y%m%d%H%M%S", time.localtime()) - anzahl, gesamtbetrag = routines.pdfs_erstellen(request, verein, mitglieder, vorlage, data_path, build_name) + rc, anzahl, gesamtbetrag = routines.pdfs_erstellen(request, verein, mitglieder, vorlage, data_path, build_name) + if rc != 0: + return HttpResponseRedirect(f'/eh-app/{verein}/kassenbrief/kein_erfolg?rc={rc}') response = HttpResponseRedirect(f'/eh-app/{verein}/kassenbrief/erfolg') response.set_cookie("build_name", build_name) response.set_cookie("anzahl", anzahl) @@ -304,6 +334,10 @@ def kassenbrief_erfolg(request, verein): 'gesamtbetrag' : request.COOKIES.get('gesamtbetrag'), }) +def kassenbrief_kein_erfolg(request, verein): + rc = request.GET.get("rc", "unknown") + return HttpResponse(f"

Die PDF-Erzeugung schlug fehl

Fehlercode: {rc}

Kontaktieren Sie Ihren Systembetreuer.

") + @login_required(login_url=LOGIN_URL) def kassenbrief_download(request, verein): vconf = config.getInstance(verein) @@ -324,10 +358,10 @@ def ehmeldung(request, verein): # check whether it's valid: if form.is_valid(): # bei Änderungen Konfiguration aktualisieren - routines.erstelle_ehmeldung(form.cleaned_data) - routines.erstelle_ausweis(form.cleaned_data) + routines.erstelle_ehmeldung(form.cleaned_data, verein) + routines.erstelle_ausweis(form.cleaned_data, verein) # redirect to a new URL: - return HttpResponseRedirect('/thanks/') + return HttpResponseRedirect(f'/eh-app/{verein}/ehmeldung/erfolg') # if a GET (or any other method) we'll create a blank form else: @@ -335,10 +369,36 @@ def ehmeldung(request, verein): return render(request, 'ehmeldung.html', {'form': form, 'verein': verein}) +@login_required(login_url=LOGIN_URL) +def ehmeldung_erfolg(request, verein): + return render(request, 'ehmeldung_erfolg.html', { + 'verein' : verein, + }) + +@login_required(login_url=LOGIN_URL) +def ehmeldung_download(request, verein): + vconf = config.getInstance(verein) + data_path = vconf.requireConfig("data_path") + + ergebnis_datei = os.path.join(data_path, "build", "meldung.pdf") + + response = FileResponse(open(ergebnis_datei, 'rb'), as_attachment=True, filename="meldung.pdf") + return response + +@login_required(login_url=LOGIN_URL) +def ausweis_download(request, verein): + vconf = config.getInstance(verein) + data_path = vconf.requireConfig("data_path") + + ergebnis_datei = os.path.join(data_path, "build", "ausweis.pdf") + + response = FileResponse(open(ergebnis_datei, 'rb'), as_attachment=True, filename="ausweis.pdf") + return response + @login_required(login_url=LOGIN_URL) def vertragsliste(request, verein): vconf = config.getInstance(verein) - data_path = vconf.getConfig("data_path", "/var/ehapp") + data_path = vconf.requireConfig("data_path") ergebnis_datei = routines.vertragsliste_erstellen(verein, data_path) response = FileResponse(open(os.path.join(data_path, "build",ergebnis_datei), 'rb'), as_attachment=True, filename=ergebnis_datei) return response @@ -382,14 +442,12 @@ def login(request): if group.name == verein: auth.login(request, user) if request.user.is_authenticated: - print("auth login ok") - else: - print("auth not logged in") - next = request.POST.get("next", None) - if next: - return HttpResponseRedirect(next) - else: - return HttpResponseRedirect(f'/eh-app/{verein}') + auth.login(request, user) + next = request.POST.get("next", None) + if next: + return HttpResponseRedirect(next) + else: + return HttpResponseRedirect(f'/eh-app/{verein}') # login fehlgeschlagen fehlertext = "Login fehlgeschlagen"