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
11 from eh_app.AWK.pdf_ersteller import PdfErsteller
12 from test.test_codeccallbacks import NoEndUnicodeDecodeError
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 return HttpResponse(template.render({"verein" : verein}, request))
31 def vorlagen_verwalten(request, verein):
32 template = loader.get_template("vorlagen_verwalten.html")
33 return HttpResponse(template.render({"verein" : verein}, request))
35 ---------------------------------------------------------------
36 Neue Templates installieren
43 def kassenbrief(request, verein):
46 Diese Methode liest aus der Config die Einstellungen und zeigt sie an.
49 Diese Methode bearbeitet den finalen "Erstellen"
51 Die Unterformulare (z.B. Beitrag ändern) landen in einer eigenen Methode, die die
52 Einstellungen in der Config ändert und dann diese hier mit GET aufruft.
55 ---------------------------------------------------------------
58 Ausgewähltes Template: <Wert aus Config>
59 Klappliste <Knopf"Template ändern">
60 Link -> Neue Templates installieren
61 ---------------------------------------------------------------
63 fehlertext_vorlage = ""
64 vconf = config.getInstance(verein)
65 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
66 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
67 vorlagen_liste = ['T1']
68 vorlagen_form = VorlagenForm(templates=vorlagen_liste)
69 beitrag_form = BeitragForm
70 if request.method == 'POST':
71 vorlagen_form = VorlagenForm(request.POST, request.FILES)
72 beitrag_form = BeitragForm(request.POST, request.FILES)
73 if vorlagen_form.is_valid() and beitrag_form.is_valid():
74 routines.aktualisiere_config(vconf, vorlagen_form.cleaned_data, beitrag_form.cleaned_data)
75 if not vorlagen_liste:
76 fehlertext_vorlage = "Bitte Kassenbriefvorlage auswählen"
78 routines.pdfs_erstellen(request, verein)
79 return HttpResponseRedirect('erfolg')
80 return render(request, 'kassenbrief.html', {'vorlagen_form': vorlagen_form, 'beitrag_form': beitrag_form,'verein': verein, 'fehlertext' : fehlertext_vorlage})
82 def kassenbrief_alt(request, verein):
84 # Hole Daten aus der Config
85 vconf = config.getInstance(verein)
86 beitrag_basis = vconf.getConfig("beitrag_basis", 0)
87 beitrag_zusatz = vconf.getConfig("beitrag_zusatz", 0)
92 if os.path.isdir("eh_app/templates/"+verein):
93 dirlist = os.listdir("eh_app/templates/"+verein) # returns list
97 template_list.append((t,t))
99 # if this is a POST request we need to process the form data
100 if request.method == 'POST':
101 # create a form instance and populate it with data from the request:
102 form = KassenbriefForm(request.POST, request.FILES, dirlist)
103 # check whether it's valid:
105 # bei Änderungen Konfiguration aktualisieren
106 routines.aktualisiere_config(vconf, form.cleaned_data, request.FILES.get('briefpapier_neu', None))
108 #Stammdaten neu aus Datenbank lesen und prüfen
109 briefpapier = vconf.getConfig("briefpapier")
110 beitrag_basis = int(vconf.getConfig("beitrag_basis", 0))
111 beitrag_zusatz = int(vconf.getConfig("beitrag_zusatz", 0))
112 briefpapier_label = briefpapier
114 briefpapier_label = "Kein Briefpapier ausgewäht"
116 # prüfen ob Werte gefüllt
117 if briefpapier is None:
118 fehlertext = "Bitte Briefpapier auswählen."
119 elif beitrag_basis == 0 and beitrag_zusatz == 0:
120 fehlertext = "Bitte Basisbeitrag und Zusatzbeitrag ausfüllen."
121 elif beitrag_basis == 0:
122 fehlertext = "Bitte Basisbeitrag ausfüllen."
123 elif beitrag_zusatz == 0:
124 fehlertext = "Bitte Zusatzbeitrag ausfüllen."
128 routines.pdfs_erstellen(request, verein)
130 # redirect to a new URL:
131 return HttpResponseRedirect('erfolg')
134 # if a GET (or any other method) we'll create a blank form
136 form = KassenbriefForm(templates=template_list, initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
137 #form = KassenbriefForm(initial={'basisbeitrag': beitrag_basis, 'zusatzbeitrag': beitrag_zusatz})
138 return render(request, 'kassenbrief.html', {'form': form, 'verein': verein, 'fehlertext' : fehlertext})
140 fehlertext = "Bitte Templates anlegen."
141 return render(request, 'fehler.html', {'verein': verein, 'fehlertext' : fehlertext})
145 template = loader.get_template("kassenbrief.html")
146 return HttpResponse(template.render({
148 "briefpapier" : briefpapier,
149 "beitrag_basis" : beitrag_basis,
150 "beitrag_zusatz" : beitrag_zusatz
155 def kassenbrief_erfolg(request, verein):
158 print (request.FILES)
159 return HttpResponse("xxx")
161 def kassenbrief_download(request, verein):
162 response = FileResponse(open(r'G:\SVBaL\python\eh_util\eh_app\test.pdf', 'rb'))
165 def ehmeldung(request, verein):
166 # if this is a POST request we need to process the form data
167 if request.method == 'POST':
168 # create a form instance and populate it with data from the request:
169 form = EhmeldungForm(request.POST, request.FILES)
170 # check whether it's valid:
172 # bei Änderungen Konfiguration aktualisieren
173 routines.erstelle_ehmeldung(form.cleaned_data)
174 # redirect to a new URL:
175 return HttpResponseRedirect('/thanks/')
177 # if a GET (or any other method) we'll create a blank form
179 form = EhmeldungForm()
181 return render(request, 'ehmeldung.html', {'form': form, 'verein': verein})