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
11 from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm, MitgliederForm, MitgliederAuswahlForm
12 from eh_app.AWK.pdf_ersteller import PdfErsteller
14 # Create your views here.
17 home = os.environ["HOME"]
18 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/"):
19 # its a eclipse development environment
20 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/")
27 def index(request, verein):
28 template = loader.get_template("vbasis.html")
29 raise RuntimeError("blub")
30 return HttpResponse(template.render({"verein" : verein}, request))
32 def vorlagen_verwalten(request, verein):
33 # TODO vorlagen_liste durch Dateioperationen aufbauen. S. kassenbrief_alt
34 # Die finale Liste muss dann folgende Form haben:
35 vorlagen_liste = [("vorlage1.tex","vorlage1"),("vorlage2.tex","vorlage2")]
37 if request.method == 'POST':
39 # Verarbeitung in routines.py aufrufen
41 # Wenn alles gut gegangen, zurück zum Kassenbrief
42 return HttpResponseRedirect(f'/{verein}/kassenbrief')
44 vorlagen_form = VorlagenVerwaltungForm(vorlagen=vorlagen_liste)
46 template = loader.get_template("vorlagen_verwalten.html")
47 return HttpResponse(template.render(
50 "vorlagen_form" : vorlagen_form },
53 ---------------------------------------------------------------
54 Neue Templates installieren
60 def mitglieder_auswahlen(request, verein):
61 # TODO vorlagen_liste durch Dateioperationen aufbauen. S. kassenbrief_alt
62 # Die finale Liste muss dann folgende Form haben:
63 mitglieder_liste = [("12","Wagler"),("13","Maier")]
65 if request.method == 'POST':
67 # Auswahl in Cookie schreiben, s. util.py
69 # Wenn alles gut gegangen, zurück zum Kassenbrief
70 return HttpResponseRedirect(f'/{verein}/kassenbrief')
72 mausw_form = MitgliederAuswahlForm(mitglieder=mitglieder_liste)
74 template = loader.get_template("mitglieder_auswahlen.html")
75 return HttpResponse(template.render(
78 "mausw_form" : mausw_form },
81 ---------------------------------------------------------------
82 Neue Templates installieren
89 def kassenbrief(request, verein):
92 Diese Methode liest aus der Config die Einstellungen und zeigt sie an.
97 - überprüft, ob an den Einstellungen was verändert wurde und falls ja, ändert die Config
98 - bearbeitet den finalen "Erstellen"
101 fehlertext_vorlage = ""
102 fehlertext_beitrag = ""
103 vconf = config.getInstance(verein)
104 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
105 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
106 vorlage_selected = vconf.getConfig("vorlage", "")
108 if os.path.isdir("eh_app/templates/"+verein):
109 dirlist = os.listdir("eh_app/templates/"+verein) # returns list
111 vorlagen_liste.append((t,t))
112 if request.method == 'POST':
113 vorlagen_form = VorlagenForm(request.POST, request.FILES, vorlagen=vorlagen_liste)
114 beitrag_form = BeitragForm(request.POST, request.FILES)
115 if vorlagen_form.is_valid() and beitrag_form.is_valid():
116 routines.aktualisiere_config(vconf, vorlagen_form.cleaned_data, beitrag_form.cleaned_data)
117 return HttpResponseRedirect('erfolg')
120 Diese Methode bearbeitet den finalen "Erstellen"
122 Die Unterformulare (z.B. Beitrag ändern) landen in einer eigenen Methode, die die
123 Einstellungen in der Config ändert und dann diese hier mit GET aufruft.
126 ---------------------------------------------------------------
129 Ausgewähltes Template: <Wert aus Config>
130 Klappliste <Knopf"Template ändern">
131 Link -> Neue Templates installieren
132 ---------------------------------------------------------------
134 fehlertext_vorlage = ""
135 vconf = config.getInstance(verein)
136 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
137 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
138 vorlagen_liste = ['T1']
139 vorlagen_form = VorlagenForm(templates=vorlagen_liste)
140 beitrag_form = BeitragForm
141 mausw_form = MitgliederForm(zul="12,45,334")
142 if request.method == 'POST':
143 vorlagen_form = VorlagenForm(request.POST, request.FILES)
144 beitrag_form = BeitragForm(request.POST, request.FILES)
145 mausw_form = MitgliederForm(request.POST, request.FILES)
146 if vorlagen_form.is_valid() and beitrag_form.is_valid():
147 routines.aktualisiere_config(vconf, vorlagen_form.cleaned_data, beitrag_form.cleaned_data)
148 if not vorlagen_liste:
149 fehlertext_vorlage = "Bitte Kassenbriefvorlage auswählen"
151 routines.pdfs_erstellen(request, verein)
152 return HttpResponseRedirect('erfolg')
155 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
156 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
158 if vorlage_selected == "":
159 fehlertext_vorlage = "Bitte Vorlage auswählen"
160 if not vorlagen_liste:
161 fehlertext_vorlage = "Bitte Vorlagen in Vorlagenverzeichnis einfügen"
162 if beitrag_basis == 0 or beitrag_zusatz == 0:
163 fehlertext_beitrag = "Bitte Eingaben zu Basis- und Zusatzbeitrag vornehmen"
164 vorlagen_form = VorlagenForm(vorlagen=vorlagen_liste, initial={'vorlage':vorlage_selected})
165 beitrag_form = BeitragForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
166 mitglieder_form = MitgliederForm()
168 return render(request,
170 {'vorlagen_form': vorlagen_form,
171 'beitrag_form': beitrag_form,
172 'mitglieder_form': mitglieder_form,
174 'fehlertext_vorlage' : fehlertext_vorlage,
175 'fehlertext_beitrag' : fehlertext_beitrag})
177 return render(request, 'kassenbrief.html', {'vorlagen_form': vorlagen_form, 'beitrag_form': beitrag_form, 'mausw_form': mausw_form, 'verein': verein, 'fehlertext' : fehlertext_vorlage})
178 >>>>>>> origin/michael
180 def kassenbrief_alt(request, verein):
182 # Hole Daten aus der Config
183 vconf = config.getInstance(verein)
184 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
185 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
190 if os.path.isdir("eh_app/templates/"+verein):
191 dirlist = os.listdir("eh_app/templates/"+verein) # returns list
195 template_list.append((t,t))
197 # if this is a POST request we need to process the form data
198 if request.method == 'POST':
199 # create a form instance and populate it with data from the request:
200 form = KassenbriefForm(request.POST, request.FILES, dirlist)
201 # check whether it's valid:
203 # bei Änderungen Konfiguration aktualisieren
204 routines.aktualisiere_config(vconf, form.cleaned_data, request.FILES.get('briefpapier_neu', None))
206 #Stammdaten neu aus Datenbank lesen und prüfen
207 briefpapier = vconf.getConfig("briefpapier")
208 beitrag_basis = int(vconf.getConfig("beitrag_basis", 0))
209 beitrag_zusatz = int(vconf.getConfig("beitrag_zusatz", 0))
210 briefpapier_label = briefpapier
212 briefpapier_label = "Kein Briefpapier ausgewäht"
214 # prüfen ob Werte gefüllt
215 if briefpapier is None:
216 fehlertext = "Bitte Briefpapier auswählen."
217 elif beitrag_basis == 0 and beitrag_zusatz == 0:
218 fehlertext = "Bitte Basisbeitrag und Zusatzbeitrag ausfüllen."
219 elif beitrag_basis == 0:
220 fehlertext = "Bitte Basisbeitrag ausfüllen."
221 elif beitrag_zusatz == 0:
222 fehlertext = "Bitte Zusatzbeitrag ausfüllen."
226 routines.pdfs_erstellen(request, verein)
228 # redirect to a new URL:
229 return HttpResponseRedirect('erfolg')
232 # if a GET (or any other method) we'll create a blank form
234 form = KassenbriefForm(templates=template_list, initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
235 #form = KassenbriefForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
236 return render(request, 'kassenbrief.html', {'form': form, 'verein': verein, 'fehlertext' : fehlertext})
238 fehlertext = "Bitte Templates anlegen."
239 return render(request, 'fehler.html', {'verein': verein, 'fehlertext' : fehlertext})
243 template = loader.get_template("kassenbrief.html")
244 return HttpResponse(template.render({
246 "briefpapier" : briefpapier,
247 "beitrag_basis" : beitrag_basis,
248 "beitrag_zusatz" : beitrag_zusatz
253 def kassenbrief_erfolg(request, verein):
256 print (request.FILES)
257 return HttpResponse("xxx")
259 def kassenbrief_download(request, verein):
260 response = FileResponse(open(r'G:\SVBaL\python\eh_util\eh_app\test.pdf', 'rb'))
263 def ehmeldung(request, verein):
264 # if this is a POST request we need to process the form data
265 if request.method == 'POST':
266 # create a form instance and populate it with data from the request:
267 form = EhmeldungForm(request.POST, request.FILES)
268 # check whether it's valid:
270 # bei Änderungen Konfiguration aktualisieren
271 routines.erstelle_ehmeldung(form.cleaned_data)
272 # redirect to a new URL:
273 return HttpResponseRedirect('/thanks/')
275 # if a GET (or any other method) we'll create a blank form
277 form = EhmeldungForm()
279 return render(request, 'ehmeldung.html', {'form': form, 'verein': verein})