]> wagnertech.de Git - SVBaL.git/blobdiff - python/eh_app/views.py
Bug 170 + check feature
[SVBaL.git] / python / eh_app / views.py
index 2180df5e12202ad5bd849e3449136d53833143b4..b8315bba77585d2f6c8738905e1bf90f166245aa 100644 (file)
@@ -63,6 +63,34 @@ def erstelle_vorlagen_liste(verein):
             vorlagen_liste.append((t,tpl_name_wo_ext))
     return vorlagen_liste
 
             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)
 @login_required(login_url=LOGIN_URL)
 def vorlagen_verwalten(request, verein):
     vorlagen_liste = erstelle_vorlagen_liste(verein)
@@ -330,10 +358,10 @@ def ehmeldung(request, verein):
         # check whether it's valid:
         if form.is_valid():
             # bei Änderungen Konfiguration aktualisieren
         # 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:
             # 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:
 
     # if a GET (or any other method) we'll create a blank form
     else:
@@ -341,10 +369,36 @@ def ehmeldung(request, verein):
 
     return render(request, 'ehmeldung.html', {'form': form, 'verein': 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)
 @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
     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
@@ -388,14 +442,12 @@ def login(request):
                 if group.name == verein:
                     auth.login(request, user)
                     if request.user.is_authenticated:
                 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"
 
         # login fehlgeschlagen
         fehlertext = "Login fehlgeschlagen"