]> wagnertech.de Git - SVBaL.git/commitdiff
Fehlermeldung kommt jetzt gar nicht mehr, da sich 0 nicht als Wert in
authorSimon Wagner <simon@wagnertech.de>
Wed, 11 Jun 2025 12:59:09 +0000 (14:59 +0200)
committerSimon Wagner <simon@wagnertech.de>
Wed, 11 Jun 2025 12:59:09 +0000 (14:59 +0200)
der Config speichern lässt.

21 files changed:
Test/FitnessePages/.dummy [new file with mode: 0644]
Test/FitnessePages/DjangoTest/.dummy [new file with mode: 0644]
Test/FitnessePages/DjangoTest/content.txt [new file with mode: 0644]
Test/FitnessePages/DjangoTest/properties.xml [new file with mode: 0644]
Test/FitnessePages/content.txt [new file with mode: 0644]
Test/FitnessePages/properties.xml [new file with mode: 0644]
Test/bin/.dummy [new file with mode: 0644]
Test/bin/create-test-export [new file with mode: 0755]
Test/etc/TestExport.csv [new file with mode: 0644]
debian/eigenheimer-util.changelog
debian/eigenheimer-util.control
debian/eigenheimer-util.cp
debian/eigenheimer-util.postinst
python/eh_util/eh_app/forms.py
python/eh_util/eh_app/templates/vorlagen_verwalten.html [new file with mode: 0644]
python/eh_util/eh_app/views.py
python/eh_util/eh_util/forms.py [new file with mode: 0644]
python/eh_util/eh_util/settings.py
python/eh_util/eh_util/templates/login.html [new file with mode: 0644]
python/eh_util/eh_util/urls.py
python/eh_util/eh_util/views.py

diff --git a/Test/FitnessePages/.dummy b/Test/FitnessePages/.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Test/FitnessePages/DjangoTest/.dummy b/Test/FitnessePages/DjangoTest/.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Test/FitnessePages/DjangoTest/content.txt b/Test/FitnessePages/DjangoTest/content.txt
new file mode 100644 (file)
index 0000000..5897464
--- /dev/null
@@ -0,0 +1,6 @@
+!|test.util.CallScript|
+|call script|!-rm -r ~/test |true-!|
+|call script|mkdir -p ~/test/python/eh_util/eh_app|
+|call script|cp ../python/eh_util/eh_app/tests.py ~/test/python/eh_util/eh_app/|
+|call script|cp ../python/eh_util/manage.py ~/test/python/eh_util/|
+|call script|cd ~/test/python/eh_util/; ./manage.py test|
diff --git a/Test/FitnessePages/DjangoTest/properties.xml b/Test/FitnessePages/DjangoTest/properties.xml
new file mode 100644 (file)
index 0000000..e13fdf4
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<properties>
+       <Edit>true</Edit>
+       <Files>true</Files>
+       <Properties>true</Properties>
+       <RecentChanges>true</RecentChanges>
+       <Refactor>true</Refactor>
+       <Search>true</Search>
+       <Test>true</Test>
+       <Versions>true</Versions>
+       <WhereUsed>true</WhereUsed>
+</properties>
diff --git a/Test/FitnessePages/content.txt b/Test/FitnessePages/content.txt
new file mode 100644 (file)
index 0000000..990fb6f
--- /dev/null
@@ -0,0 +1 @@
+!contents -R2 -g -p -f -h
\ No newline at end of file
diff --git a/Test/FitnessePages/properties.xml b/Test/FitnessePages/properties.xml
new file mode 100644 (file)
index 0000000..72aa2b6
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<properties>
+       <Edit>true</Edit>
+       <Files>true</Files>
+       <Properties>true</Properties>
+       <RecentChanges>true</RecentChanges>
+       <Refactor>true</Refactor>
+       <Search>true</Search>
+       <Versions>true</Versions>
+       <WhereUsed>true</WhereUsed>
+</properties>
diff --git a/Test/bin/.dummy b/Test/bin/.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Test/bin/create-test-export b/Test/bin/create-test-export
new file mode 100755 (executable)
index 0000000..05ef991
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+if [ $# -lt 1 ]; then
+       echo "usage: create-test-export INPUT"
+       exit 1
+fi
+head -1 $1 > TestExport.csv
+grep 14962 $1 >> TestExport.csv
+grep 19603 $1 >> TestExport.csv
+grep 76491 $1 >> TestExport.csv
+grep 76441 $1 >> TestExport.csv
+grep 75987 $1 >> TestExport.csv
+grep 75723 $1 >> TestExport.csv
+grep 14965 $1 >> TestExport.csv
+grep 14964 $1 >> TestExport.csv
+grep 76736 $1 >> TestExport.csv
+
+# remove BOM
+sed -i $'1s/^\uFEFF//' TestExport.csv
diff --git a/Test/etc/TestExport.csv b/Test/etc/TestExport.csv
new file mode 100644 (file)
index 0000000..3948d46
--- /dev/null
@@ -0,0 +1,10 @@
+"Mitglieds-Nr";Nachname;Vorname;Anrede;"Straße";PLZ;Ort;Geburtsdatum;Eintrittsdatum;Austrittsdatum;Abteilungen;Zahlungsart;IBAN;BIC;Kontoinhaber;"Mandatsreferenz";Abweichender Zahler Mitglied;Abweichender Zahler IBAN;E-Mail;Postinfo;VersichertesObjekt;Zeitung
+"14962";Acktun;Horst;Herr;"Blombergstr. 30";81825;München;25.04.1948;01.01.1998;;Standard (01.01.1998 bis -);Lastschrift;DE24 7002 0270 1780 0470 00;HYVEDEMMXXX;Acktun Horst;"10058";;;;Nein;;Ja
+"* 19603";Bachmann;Sonja und Horst;Herr und Frau;"Kampenwandstr. 1a";81671;München;04.12.1954;01.04.2010;31.12.2024;Zusatzgrundstück (01.04.2010 bis 31.12.2024);Lastschrift (AZ: Bachmann, Horst und Sonja);;;;"";Bachmann, Horst und Sonja;DE47 7015 0000 0080 1337 39;;Nein;81671 München, Hachinger Bach-Str. 4 c;Nein
+"76491";Söllner;Marianne;Frau;"Böhmerbrunnenstr. 27";92345;Dietfurt;;01.09.1992;;Zusatzgrundstück (01.09.1992 bis -);Lastschrift (AZ: Söllner, Marianne);;;;"";Söllner, Marianne;DE98 7605 2080 0570 7136 10;;Nein;92363 Breitbrunn, Tannenweg 6;Nein
+"76441";Söllner;Marianne;Frau;"Böhmerbrunnenstr. 27";92345;Dietfurt;;01.01.1995;;Zusatzgrundstück (01.01.1995 bis -);Lastschrift (AZ: Söllner, Marianne);;;;"";Söllner, Marianne;DE98 7605 2080 0570 7136 10;;Nein;;Nein
+"75987";Söllner;Marianne;Frau;"Böhmerbrunnenstr. 27";92354;Dietfurt;;01.01.1985;;Standard (01.01.1985 bis -);Lastschrift;DE98 7605 2080 0570 7136 10;BYLADEM1NMA;Söllner Marianne;"10194";;;;Nein;92345 Dietfurt 2, Böhmerbrunnenstr. 21;Ja
+"75723";Tungl;Inge;Frau;"Sonnwendjochstr. 79";81825;München;;01.01.1960;;Standard (01.01.1960 bis -);Überweisung;;;Tungl Inge;"";;;;Nein;;Ja
+"14965";Wagner;Dr. Michael und Ingrid;;"Turfstr. 18 a";81929;München;;01.04.2024;;Zusatzgrundstück (01.04.2024 bis -);Lastschrift (AZ: Wagner, Dr. Michael und Ingrid);;;;"";Wagner, Dr. Michael und Ingrid;DE54 7009 0500 0004 4282 85;;Nein;Finkenweg 5, 83556 Griesstätt;Nein
+"14964";Wagner;Dr. Michael und Ingrid;Herr und Frau;"Turfstr. 18 a";81929;München;;01.04.2024;;Zusatzgrundstück (01.04.2024 bis -);Lastschrift (AZ: Wagner, Dr. Michael und Ingrid);;;;"";Wagner, Dr. Michael und Ingrid;DE54 7009 0500 0004 4282 85;;Nein;Gleiwitzer Str. 26, 81929 München;Nein
+"76736";Wagner;Dr. Michael und Ingrid;Herr und Frau;"Turfstr. 18 a";81929;München;25.05.1965;01.12.2012;;Standard (01.12.2012 bis -);Lastschrift;DE54 7009 0500 0004 4282 85;GENODEF1S04;Wagner Dr. Michael und Ingrid;"10218";;;bonzius@vindelicia.de;Nein;81929 München, Gleiwitzerstr. 28;Ja
index b46e67324a13b0ea02d178c849fdb9ee400e3608..b27984b3d0fb605ba69da0380952b10d27f00bb1 100644 (file)
@@ -1,4 +1,4 @@
 svbal (0.1-%BUILD%) unstable; urgency=medium
-  * initial version: Ausweiserstellung
+  * initial version: Ausweiserstellung, Kassenbrief
  -- Michael Wagner <info@wagnertech.de>  Sat, 06 Jun 2020 20:03:04 +0100
 
index b9286612d690db31f376d1fbf44a90046c73b6d1..c2827a6322ead9ec95263e8b61b6e23934f6504c 100644 (file)
@@ -6,7 +6,7 @@ Build-Depends: git, mbuild
  
 Package: eigenheimer-util
 Architecture: all
-Depends: texlive-latex-base, texlive-latex-recommended, texlive-lang-german, python3, apache2, libapache2-mod-wsgi-py3
+Depends: texlive-latex-base, texlive-latex-recommended, texlive-lang-german, python3, apache2, libapache2-mod-wsgi-py3, python3-django
 Description: Mitgliederverwaltung Eigenheimerverband
  .
 
index 52024fb346587391b5293251732ebf9b92312402..ab5f381e1fd56f17e841a6d29bb685eeaf13cb88 100755 (executable)
@@ -2,7 +2,7 @@
 set -e
 
 mkdir -p $1/opt
-cp -r python/eh_util $1/opt
+cp -r python/eh_util $1/opt/
 
 # DB löschen
 rm $1/opt/eh_util/db.sqlite3
index 475ac41d3e3b491a0d0115f8cb90b058503b8f2e..d26470dcc7d90f52229e76508323000a4ccd4224 100755 (executable)
@@ -4,7 +4,7 @@ set -e
 # DB anlegen/migrieren
 /opt/eh_util/manage.py migrate
 
-# activate verleihnix configuration
+# activate eh_util configuration
 if ! test -e /etc/apache2/sites-enabled/eh_util.conf
 then
        a2ensite eh_util
index 63601f721f48e59b2908b7f03ba4cac73406d581..a67b75f708f3630c6ae5be7839ad5f596a1d6748 100644 (file)
@@ -30,6 +30,18 @@ class VorlagenForm(forms.Form):
         super().__init__(*args, **kwargs)
         self.fields['template'].choices = templates
 
+class VorlagenVerwaltungForm(forms.Form):
+    vorlagen_zu_loschen = forms.MultipleChoiceField(
+        widget=forms.CheckboxSelectMultiple, 
+        choices=(),
+        label="Vorlagen zum Löschen vormerken:"
+    )
+    vorlage_neu = forms.FileField(label='Neue Vorlage installieren:', required=False)
+    def __init__(self, *args, vorlagen=[('AB', 'ab'),('BC','bc')], **kwargs):
+        self.vorlagen = vorlagen
+        super().__init__(*args, **kwargs)
+        self.fields['vorlagen_zu_loschen'].choices = vorlagen
+
 class BeitragForm(forms.Form):
     basisbeitrag  = forms.IntegerField()
     zusatzbeitrag = forms.IntegerField(label="Beitrag für Zusatzgrundstück")
diff --git a/python/eh_util/eh_app/templates/vorlagen_verwalten.html b/python/eh_util/eh_app/templates/vorlagen_verwalten.html
new file mode 100644 (file)
index 0000000..be8a82e
--- /dev/null
@@ -0,0 +1,15 @@
+<html>
+<head>
+       <title>Siedlerverein-Verwaltung by WagnerTech UG</title>
+</head>
+<body>
+<h1>Vorlagen verwalten</h1>
+<form action="/{{verein}}/vorlagen_verwalten/" method="post" enctype="multipart/form-data">
+{% csrf_token %}
+<table>
+{{vorlagen_form}}
+</table>
+<p><input type="submit" value="Ändern"/>
+</form>
+</body>
+</html>
index cfcd7c219f3064a67c4e7d1f76890bbf7600c71d..0d9f31d0540537d93495f5a4bceb3c7124294c6f 100644 (file)
@@ -7,9 +7,8 @@ from django.template import loader
 
 from .AWK import config, routines
 #import .forms 
-from .forms import EhmeldungForm, VorlagenForm, BeitragForm
+from .forms import EhmeldungForm, VorlagenForm, BeitragForm, VorlagenVerwaltungForm
 from eh_app.AWK.pdf_ersteller import PdfErsteller
-from test.test_codeccallbacks import NoEndUnicodeDecodeError
 
 # Create your views here.
 
@@ -26,11 +25,29 @@ except:
 
 def index(request, verein):
     template = loader.get_template("vbasis.html")
+    raise RuntimeError("blub")
     return HttpResponse(template.render({"verein" : verein}, request))
 
 def vorlagen_verwalten(request, verein):
+    # TODO vorlagen_liste durch Dateioperationen aufbauen. S. kassenbrief_alt
+    # Die finale Liste muss dann folgende Form haben:
+    vorlagen_liste = [("vorlage1.tex","vorlage1"),("vorlage2.tex","vorlage2")]
+
+    if request.method == 'POST':
+        # Form auswerten
+        # Verarbeitung in routines.py aufrufen
+
+        # Wenn alles gut gegangen, zurück zum Kassenbrief
+        return HttpResponseRedirect(f'/{verein}/kassenbrief')
+    else:
+        vorlagen_form = VorlagenVerwaltungForm(vorlagen=vorlagen_liste)
+        
     template = loader.get_template("vorlagen_verwalten.html")
-    return HttpResponse(template.render({"verein" : verein}, request))
+    return HttpResponse(template.render(
+        {
+            "verein" : verein, 
+            "vorlagen_form" : vorlagen_form }, 
+        request))
     '''
     ---------------------------------------------------------------
     Neue Templates installieren
@@ -38,7 +55,7 @@ def vorlagen_verwalten(request, verein):
     <Dateiauswahlknopf>
     <Knopf"Installieren">
     '''
-    pass
+
 #@login_required
 def kassenbrief(request, verein):
     '''
diff --git a/python/eh_util/eh_util/forms.py b/python/eh_util/eh_util/forms.py
new file mode 100644 (file)
index 0000000..f404bde
--- /dev/null
@@ -0,0 +1,7 @@
+from django import forms
+
+class LoginForm(forms.Form):
+    verein   = forms.CharField(label = "Vereinskürzel")
+    name     = forms.CharField(label = "Login-Name")
+    password = forms.CharField(widget=forms.PasswordInput, label = "Passwort")
+    next     = forms.CharField(widget = forms.HiddenInput(), required = False)
index 57fc9fa3065741212433b260079990260ea48005..d90a3e56c0f289c8ddb6b28a65fe5bf82f692a2c 100644 (file)
@@ -14,7 +14,7 @@ import os
 
 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
+MEDIA_ROOT = BASE_DIR
 
 # Quick-start development settings - unsuitable for production
 # See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
@@ -27,6 +27,7 @@ DEBUG = True
 
 ALLOWED_HOSTS = []
 
+LOGIN_URL = "/eh-util/login"
 
 # Application definition
 
@@ -57,7 +58,7 @@ ROOT_URLCONF = 'eh_util.urls'
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': ["eh_util/templates", "eh_utils/eh_app/templates/svbal"],
+        'DIRS': [os.path.join(BASE_DIR, "eh_util/templates"), os.path.join(BASE_DIR, "eh_utils/eh_app/templates/svbal")],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
diff --git a/python/eh_util/eh_util/templates/login.html b/python/eh_util/eh_util/templates/login.html
new file mode 100644 (file)
index 0000000..5ea9093
--- /dev/null
@@ -0,0 +1,17 @@
+<html>
+<head>
+       <title>Siedlerverein-Verwaltung by WagnerTech UG</title>
+</head>
+<body>
+<h1>Siedlerverein-Verwaltung by WagnerTech UG</h1>
+<h2>Login</h2>
+<form action="/eh-util/login/" method="post" enctype="multipart/form-data">
+{% csrf_token %}
+{{fehlertext}}
+<table>
+{{form}}
+</table>
+<p><input type="submit" value="Anmelden"/>
+</form>
+</body>
+</html>
index 0d8d93c19135112f003f8ec1205dab70c7675d5c..344817ad32062fcfda0a8eb64b90b83d45aa546d 100644 (file)
@@ -20,7 +20,7 @@ from . import views
 
 urlpatterns = [
     path('', views.index),
-    path('accounts/login/', views.login),
+    path('login/', views.login),
     path('admin/', admin.site.urls),
     path('eh-abgleich/', include('eh_abgleich.urls')),
 #    path('<slug:verein>/', views.vbasis),
index 24c9c35e1523764591f1a91f842f82f474ba70b3..0262e40888976d459ce3260d2fe3f502fb48fcbd 100644 (file)
@@ -48,5 +48,6 @@ def login(request):
     
 def vbasis(request, verein):
     template = loader.get_template("vbasis.html")
+    raise RuntimeError("blub")
     return HttpResponse(template.render({"verein" : verein}, request))