]> wagnertech.de Git - SVBaL.git/blob - python/eh_util/eh_app/views.py
vorlagen_verwalten:
[SVBaL.git] / python / eh_util / eh_app / views.py
1 import os,sys
2
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
7
8 from .AWK import config, routines
9 #import .forms 
10 from .forms import EhmeldungForm, VorlagenForm, BeitragForm
11 from eh_app.AWK.pdf_ersteller import PdfErsteller
12 from test.test_codeccallbacks import NoEndUnicodeDecodeError
13
14 # Create your views here.
15
16 try:
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/")
21         import pydevd
22         pydevd.settrace()
23
24 except:
25     pass
26
27 def index(request, verein):
28     template = loader.get_template("vbasis.html")
29     return HttpResponse(template.render({"verein" : verein}, request))
30
31 def vorlagen_verwalten(request, verein):
32     template = loader.get_template("vorlagen_verwalten.html")
33     return HttpResponse(template.render({"verein" : verein}, request))
34     '''
35     ---------------------------------------------------------------
36     Neue Templates installieren
37     
38     <Dateiauswahlknopf>
39     <Knopf"Installieren">
40     '''
41     pass
42 #@login_required
43 def kassenbrief(request, verein):
44     '''
45     GET:
46     Diese Methode liest aus der Config die Einstellungen und zeigt sie an.
47     
48     POST: 
49     Diese Methode bearbeitet den finalen "Erstellen"
50     
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.
53     '''
54     '''
55     ---------------------------------------------------------------
56     Templateauswahl
57     
58     Ausgewähltes Template: <Wert aus Config>
59     Klappliste <Knopf"Template ändern">
60     Link -> Neue Templates installieren
61     ---------------------------------------------------------------
62     '''
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"
77             else:   
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})
81    
82 def kassenbrief_alt(request, verein):
83     fehlertext = ""
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)
88
89     # suche Templates
90     import os
91     dirlist = None
92     if os.path.isdir("eh_app/templates/"+verein):
93         dirlist = os.listdir("eh_app/templates/"+verein) # returns list
94     if dirlist:
95         template_list = []
96         for t in dirlist:
97             template_list.append((t,t))
98     
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:
104             if form.is_valid():
105                 # bei Änderungen Konfiguration aktualisieren
106                 routines.aktualisiere_config(vconf, form.cleaned_data, request.FILES.get('briefpapier_neu', None))
107             
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
113                 if not briefpapier:
114                     briefpapier_label = "Kein Briefpapier ausgewäht"
115             
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."
125             
126                 # wenn Werte gefüllt 
127                 else:
128                     routines.pdfs_erstellen(request, verein)
129                 
130                     # redirect to a new URL:
131                     return HttpResponseRedirect('erfolg')
132
133
134         # if a GET (or any other method) we'll create a blank form
135         else:
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})
139     else:
140         fehlertext = "Bitte Templates anlegen."
141         return render(request, 'fehler.html', {'verein': verein, 'fehlertext' : fehlertext})
142
143     
144     '''
145     template = loader.get_template("kassenbrief.html")
146     return HttpResponse(template.render({
147         "verein"         : verein,
148         "briefpapier"    : briefpapier,
149         "beitrag_basis"  : beitrag_basis,
150         "beitrag_zusatz" : beitrag_zusatz
151         }, request))
152
153     '''
154
155 def kassenbrief_erfolg(request, verein):
156     # Hole Formulardaten
157     print (request.POST)
158     print (request.FILES)
159     return HttpResponse("xxx")
160
161 def kassenbrief_download(request, verein):
162     response = FileResponse(open(r'G:\SVBaL\python\eh_util\eh_app\test.pdf', 'rb'))
163     return response
164
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:
171         if form.is_valid():
172             # bei Änderungen Konfiguration aktualisieren
173             routines.erstelle_ehmeldung(form.cleaned_data)
174             # redirect to a new URL:
175             return HttpResponseRedirect('/thanks/')
176
177     # if a GET (or any other method) we'll create a blank form
178     else:
179         form = EhmeldungForm()
180
181     return render(request, 'ehmeldung.html', {'form': form, 'verein': verein})
182     
183