https://docs.djangoproject.com/en/2.2/ref/forms/fields/
'''
class KassenbriefForm(forms.Form):
- briefpapier = forms.FileField(label='Briefpapier ändern:', required=False)
+ #briefpapier = forms.FileField(label='Briefpapier ändern:', required=False)
+ template = forms.ChoiceField(choices=[('AB', 'ab'),('BC','bc')])
basisbeitrag = forms.IntegerField()
zusatzbeitrag = forms.IntegerField(label="Beitrag für Zusatzgrundstück")
+ def __init__(self, *args, templates=[('AB', 'ab'),('BC','bc')], **kwargs):
+ self.templates = templates
+ KassenbriefForm.template = forms.ChoiceField(choices=templates)
+ super().__init__(*args, **kwargs)
class EhmeldungForm(forms.Form):
VorZuname = forms.CharField(
@author: sparky2021
'''
+from q import QError
from qif import QIF
from .AWK import config
import datetime
data_set = self.data_source.request(f"SELECT {self.att_list} FROM {self.file_name} WHERE Abteilung_1 = 'Standard'")
+ if type(data_set) is QError:
+ raise RuntimeError(data_set)
mm = []
for data in data_set:
eintrittsdatum = datetime.datetime.strptime(data[8], '%d.%m.%Y')
# m.geburtsdatum = data[7]
# "Austrittsgrund"
# m.zahlungsart = data[16]
- # m.iban = data[17]
+ m.iban = data[11]
# m.bic = data[18]
# "Kontonummer"
# "Bankleitzahl"
def VersicherteGrundstucke(self, mitglied):
# Hole Basiseintrag
- data_set = self.data_source.request(f"SELECT Freifeldwert_1 FROM {self.file_name} WHERE `Mitglieds-Nr` = {mitglied.mitgliedsnr}")
+ data_set = self.data_source.request(f"SELECT Freifeldwert_2 FROM {self.file_name} WHERE `Mitglieds-Nr` = {mitglied.mitgliedsnr}")
if data_set[0][0]:
gr = data_set[0][0]
else:
# Suche nach weiteren Grunstücken
data_set = self.data_source.request(f"SELECT Freifeldwert_2 FROM {self.file_name} WHERE Freifeldname_1 = 'Partnernummer' AND Freifeldwert_1 = {mitglied.mitgliedsnr}")
for data in data_set:
- gst.append(data[0])
+ if len(data[0]) > 0:
+ gst.append(data[0])
+ else:
+ gst.append(f"{mitglied.strasse}, {mitglied.plz} {mitglied.ort}")
+
return gst
class Mitglied:
</head>
<body>
<h1>Erstellung Kassenbrief</h1>
-<p>Überprüfen Sie folgende Eingabedaten</p>
+<p>Überprüfen Sie folgende Eingabedaten:</p>
+<hr>
+
+<h2>Template</h2>
+
<form action="/{{verein}}/kassenbrief/" method="post" enctype="multipart/form-data">
{% csrf_token %}
<table>
-<tr><th>Briefpapier:</th><td>{{briefpapier}}</td></tr>
{{form}}
</table>
{{fehlertext}}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': '/var/django/eh_util.sqlite3',
+ 'NAME': 'db.sqlite3',
}
}
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
- {
- 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
- },
+ #{
+ # 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ #},
+ #{
+ # 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ #},
+ #{
+ # 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ #},
+ #{
+ # 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ #},
]
urlpatterns = [
path('', views.index),
+ path('accounts/login/', views.login),
path('admin/', admin.site.urls),
path('eh-abgleich/', include('eh_abgleich.urls')),
# path('<slug:verein>/', views.vbasis),
template = loader.get_template('index.html')
return HttpResponse(template.render({}, request))
+def login(request):
+ from django.contrib.auth import authenticate
+ from .forms import LoginForm
+
+ fehlertext = ""
+ # if this is a POST request we need to process the form data
+ if request.method == 'POST':
+ # create a form instance and populate it with data from the request:
+ form = LoginForm(request.POST, request.FILES)
+ # check whether it's valid:
+ if form.is_valid():
+ user = authenticate(
+ username = request.POST["name"],
+ password = request.POST["password"],
+ )
+ if user is None:
+ # login fehlgeschlagen
+ fehlertext = "Login fehlgeschlagen"
+
+ else:
+ next = request.POST.get("next", None)
+ if next:
+ return HttpResponseRedirect(next)
+ else:
+ return HttpResponseRedirect('/')
+
+ # if a GET (or any other method) we'll create a blank form
+ else:
+ next = None
+ verein = ""
+ next = request.GET.get("next", None)
+ if next:
+ path_elems = next.split("/")
+ verein = path_elems[1]
+ form = LoginForm(initial={'next': next, 'verein': verein})
+
+ return render(request, 'login.html', {'form': form, 'fehlertext': fehlertext})
+
def vbasis(request, verein):
template = loader.get_template("vbasis.html")
return HttpResponse(template.render({"verein" : verein}, request))
-
\ No newline at end of file