3 from django.contrib.auth.decorators import login_required
4 from django.http import HttpResponse, HttpResponseRedirect, FileResponse
5 from django.shortcuts import render
6 from django.template import loader
8 from .AWK import config, routines
10 from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm
11 from eh_app.AWK.pdf_ersteller import PdfErsteller
13 # Create your views here.
16 home = os.environ["HOME"]
17 if os.path.exists(f"{home}/.eclipse/org.eclipse.platform_4.18.0_1473617060_linux_gtk_x86_64/plugins/org.python.pydev.core_8.3.0.202104101217/pysrc/"):
18 # its a eclipse development environment
19 sys.path.append(f"{home}/.eclipse/org.eclipse.platform_4.18.0_1473617060_linux_gtk_x86_64/plugins/org.python.pydev.core_8.3.0.202104101217/pysrc/")
26 def index(request, verein):
27 template = loader.get_template("vbasis.html")
28 return HttpResponse(template.render({"verein" : verein}, request))
30 def vorlagen_verwalten(request, verein):
31 # TODO vorlagen_liste durch Dateioperationen aufbauen. S. kassenbrief_alt
32 # Die finale Liste muss dann folgende Form haben:
33 vorlagen_liste = [("vorlage1.tex","vorlage1"),("vorlage2.tex","vorlage2")]
35 if request.method == 'POST':
37 # Verarbeitung in routines.py aufrufen
39 # Wenn alles gut gegangen, zurück zum Kassenbrief
40 return HttpResponseRedirect(f'/{verein}/kassenbrief')
42 vorlagen_form = VorlagenVerwaltungForm(vorlagen=vorlagen_liste)
44 template = loader.get_template("vorlagen_verwalten.html")
45 return HttpResponse(template.render(
48 "vorlagen_form" : vorlagen_form },
51 ---------------------------------------------------------------
52 Neue Templates installieren
59 def kassenbrief(request, verein):
62 Diese Methode liest aus der Config die Einstellungen und zeigt sie an.
66 - überprüft, ob an den Einstellungen was verändert wurde und falls ja, ändert die Config
67 - bearbeitet den finalen "Erstellen"
70 fehlertext_vorlage = ""
71 fehlertext_beitrag = ""
72 vconf = config.getInstance(verein)
73 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
74 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
75 vorlage_selected = vconf.getConfig("vorlage", "")
77 if os.path.isdir("eh_app/templates/"+verein):
78 dirlist = os.listdir("eh_app/templates/"+verein) # returns list
80 vorlagen_liste.append((t,t))
81 if request.method == 'POST':
82 vorlagen_form = VorlagenForm(request.POST, request.FILES, vorlagen=vorlagen_liste)
83 beitrag_form = BeitragForm(request.POST, request.FILES)
84 if vorlagen_form.is_valid() and beitrag_form.is_valid():
85 routines.aktualisiere_config(vconf, vorlagen_form.cleaned_data, beitrag_form.cleaned_data)
86 return HttpResponseRedirect('erfolg')
88 if not vorlagen_liste:
89 fehlertext_vorlage = "Bitte Kassenbriefvorlage auswählen"
91 routines.pdfs_erstellen(request, verein)
92 return HttpResponseRedirect('erfolg')
95 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
96 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
98 if vorlage_selected == "":
99 fehlertext_vorlage = "Bitte Vorlage auswählen"
100 if not vorlagen_liste:
101 fehlertext_vorlage = "Bitte Vorlagen in Vorlagenverzeichnis einfügen"
102 if beitrag_basis == 0 or beitrag_zusatz == 0:
103 fehlertext_beitrag = "Bitte Eingaben zu Basis- und Zusatzbeitrag vornehmen"
104 vorlagen_form = VorlagenForm(vorlagen=vorlagen_liste, initial={'vorlage':vorlage_selected})
105 beitrag_form = BeitragForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
106 mitglieder_form = MitgliederForm()
108 return render(request,
110 {'vorlagen_form': vorlagen_form,
111 'beitrag_form': beitrag_form,
112 'mitglieder_form': mitglieder_form,
114 'fehlertext_vorlage' : fehlertext_vorlage,
115 'fehlertext_beitrag' : fehlertext_beitrag})
117 def kassenbrief_alt(request, verein):
119 # Hole Daten aus der Config
120 vconf = config.getInstance(verein)
121 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
122 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
127 if os.path.isdir("eh_app/templates/"+verein):
128 dirlist = os.listdir("eh_app/templates/"+verein) # returns list
132 template_list.append((t,t))
134 # if this is a POST request we need to process the form data
135 if request.method == 'POST':
136 # create a form instance and populate it with data from the request:
137 form = KassenbriefForm(request.POST, request.FILES, dirlist)
138 # check whether it's valid:
140 # bei Änderungen Konfiguration aktualisieren
141 routines.aktualisiere_config(vconf, form.cleaned_data, request.FILES.get('briefpapier_neu', None))
143 #Stammdaten neu aus Datenbank lesen und prüfen
144 briefpapier = vconf.getConfig("briefpapier")
145 beitrag_basis = int(vconf.getConfig("beitrag_basis", 0))
146 beitrag_zusatz = int(vconf.getConfig("beitrag_zusatz", 0))
147 briefpapier_label = briefpapier
149 briefpapier_label = "Kein Briefpapier ausgewäht"
151 # prüfen ob Werte gefüllt
152 if briefpapier is None:
153 fehlertext = "Bitte Briefpapier auswählen."
154 elif beitrag_basis == 0 and beitrag_zusatz == 0:
155 fehlertext = "Bitte Basisbeitrag und Zusatzbeitrag ausfüllen."
156 elif beitrag_basis == 0:
157 fehlertext = "Bitte Basisbeitrag ausfüllen."
158 elif beitrag_zusatz == 0:
159 fehlertext = "Bitte Zusatzbeitrag ausfüllen."
163 routines.pdfs_erstellen(request, verein)
165 # redirect to a new URL:
166 return HttpResponseRedirect('erfolg')
169 # if a GET (or any other method) we'll create a blank form
171 form = KassenbriefForm(templates=template_list, initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
172 #form = KassenbriefForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
173 return render(request, 'kassenbrief.html', {'form': form, 'verein': verein, 'fehlertext' : fehlertext})
175 fehlertext = "Bitte Templates anlegen."
176 return render(request, 'fehler.html', {'verein': verein, 'fehlertext' : fehlertext})
180 template = loader.get_template("kassenbrief.html")
181 return HttpResponse(template.render({
183 "briefpapier" : briefpapier,
184 "beitrag_basis" : beitrag_basis,
185 "beitrag_zusatz" : beitrag_zusatz
190 def kassenbrief_erfolg(request, verein):
193 print (request.FILES)
194 return HttpResponse("xxx")
196 def kassenbrief_download(request, verein):
197 response = FileResponse(open(r'G:\SVBaL\python\eh_util\eh_app\test.pdf', 'rb'))
200 def ehmeldung(request, verein):
201 # if this is a POST request we need to process the form data
202 if request.method == 'POST':
203 # create a form instance and populate it with data from the request:
204 form = EhmeldungForm(request.POST, request.FILES)
205 # check whether it's valid:
207 # bei Änderungen Konfiguration aktualisieren
208 routines.erstelle_ehmeldung(form.cleaned_data)
209 # redirect to a new URL:
210 return HttpResponseRedirect('/thanks/')
212 # if a GET (or any other method) we'll create a blank form
214 form = EhmeldungForm()
216 return render(request, 'ehmeldung.html', {'form': form, 'verein': verein})