posaune
authorMichael J.M. Wagner <michael@wagnertech.de>
Mon, 29 Jan 2024 16:30:51 +0000 (17:30 +0100)
committerMichael J.M. Wagner <michael@wagnertech.de>
Mon, 29 Jan 2024 16:30:51 +0000 (17:30 +0100)
14 files changed:
python/eh_util/eh_abgleich/__init__.py [new file with mode: 0644]
python/eh_util/eh_abgleich/admin.py [new file with mode: 0644]
python/eh_util/eh_abgleich/apps.py [new file with mode: 0644]
python/eh_util/eh_abgleich/forms.py [new file with mode: 0644]
python/eh_util/eh_abgleich/migrations/.dummy [new file with mode: 0644]
python/eh_util/eh_abgleich/models.py [new file with mode: 0644]
python/eh_util/eh_abgleich/templates/.dummy [new file with mode: 0644]
python/eh_util/eh_abgleich/tests.py [new file with mode: 0644]
python/eh_util/eh_abgleich/urls.py [new file with mode: 0644]
python/eh_util/eh_abgleich/views.py [new file with mode: 0644]
python/eh_util/eh_util/__init__.py [new file with mode: 0644]
python/eh_util/eh_util/settings.py [new file with mode: 0644]
python/eh_util/eh_util/urls.py [new file with mode: 0644]
python/eh_util/eh_util/wsgi.py [new file with mode: 0644]

diff --git a/python/eh_util/eh_abgleich/__init__.py b/python/eh_util/eh_abgleich/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/python/eh_util/eh_abgleich/admin.py b/python/eh_util/eh_abgleich/admin.py
new file mode 100644 (file)
index 0000000..8c38f3f
--- /dev/null
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/python/eh_util/eh_abgleich/apps.py b/python/eh_util/eh_abgleich/apps.py
new file mode 100644 (file)
index 0000000..4e44d82
--- /dev/null
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class EhAbgleichConfig(AppConfig):
+    name = 'eh_abgleich'
diff --git a/python/eh_util/eh_abgleich/forms.py b/python/eh_util/eh_abgleich/forms.py
new file mode 100644 (file)
index 0000000..d6fb153
--- /dev/null
@@ -0,0 +1,11 @@
+from django import forms
+
+class UploadFileForm(forms.Form):
+    file1 = forms.FileField(label='S-Verein-Export')
+    file2 = forms.FileField(label='Eigemheimer-Datei')
+    
+class DocumentForm(forms.Form):
+    docfile = forms.FileField(
+        label='Select a file',
+        help_text='max. 42 megabytes'
+    )
\ No newline at end of file
diff --git a/python/eh_util/eh_abgleich/migrations/.dummy b/python/eh_util/eh_abgleich/migrations/.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/python/eh_util/eh_abgleich/models.py b/python/eh_util/eh_abgleich/models.py
new file mode 100644 (file)
index 0000000..71a8362
--- /dev/null
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/python/eh_util/eh_abgleich/templates/.dummy b/python/eh_util/eh_abgleich/templates/.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/python/eh_util/eh_abgleich/tests.py b/python/eh_util/eh_abgleich/tests.py
new file mode 100644 (file)
index 0000000..7ce503c
--- /dev/null
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/python/eh_util/eh_abgleich/urls.py b/python/eh_util/eh_abgleich/urls.py
new file mode 100644 (file)
index 0000000..85458c9
--- /dev/null
@@ -0,0 +1,9 @@
+from django.urls import path
+
+from . import views
+
+urlpatterns = [
+    path('', views.index, name='index'),
+    path('ss', views.upload_file, name='upload_file1'),
+    path('aa', views.list, name='list')
+]
diff --git a/python/eh_util/eh_abgleich/views.py b/python/eh_util/eh_abgleich/views.py
new file mode 100644 (file)
index 0000000..73bca4b
--- /dev/null
@@ -0,0 +1,44 @@
+from django.shortcuts import render
+from django.http import HttpResponse, HttpResponseRedirect
+from eh_abgleich.forms import UploadFileForm, DocumentForm
+
+# Create your views here.
+
+
+def index(request):
+    return HttpResponse("Hello, world. You're at the polls index.")
+
+
+# Imaginary function to handle an uploaded file.
+#from somewhere import handle_uploaded_file
+
+def upload_file(request):
+    if request.method == 'POST':
+        form = UploadFileForm(request.POST, request.FILES)
+        if form.is_valid():
+            #handle_uploaded_file(request.FILES['file'])
+            return HttpResponseRedirect('/success/url/')
+    else:
+        form = UploadFileForm()
+    return render(request, 'upload.html', {'form': form})
+
+def list(request):
+    # Handle file upload
+    if request.method == 'POST':
+        form = DocumentForm(request.POST, request.FILES)
+        if form.is_valid():
+            #newdoc = Document(docfile = request.FILES['docfile'])
+            #newdoc.save()
+
+            # Redirect to the document list after POST
+            return HttpResponseRedirect(reverse('list'))
+    else:
+        form = DocumentForm() # A empty, unbound form
+
+    # Load documents for the list page
+    #documents = Document.objects.all()
+    documents = {}
+
+
+    # Render list page with the documents and the form
+    return render(request, 'list.html', {'documents': documents, 'form': form})
diff --git a/python/eh_util/eh_util/__init__.py b/python/eh_util/eh_util/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/python/eh_util/eh_util/settings.py b/python/eh_util/eh_util/settings.py
new file mode 100644 (file)
index 0000000..24602be
--- /dev/null
@@ -0,0 +1,121 @@
+"""
+Django settings for eh_util project.
+
+Generated by 'django-admin startproject' using Django 2.2.28.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/2.2/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/2.2/ref/settings/
+"""
+
+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__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'x8xmlmq_%a3^rp7@1x0n%ugebrp!4@hc*5@=g%&6fo@5m3g!kw'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = [
+       'eh_abgleich',
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+]
+
+MIDDLEWARE = [
+    'django.middleware.security.SecurityMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'eh_util.urls'
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        'DIRS': [],
+        'APP_DIRS': True,
+        'OPTIONS': {
+            'context_processors': [
+                'django.template.context_processors.debug',
+                'django.template.context_processors.request',
+                'django.contrib.auth.context_processors.auth',
+                'django.contrib.messages.context_processors.messages',
+            ],
+        },
+    },
+]
+
+WSGI_APPLICATION = 'eh_util.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.sqlite3',
+        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+    }
+}
+
+
+# Password validation
+# 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',
+    },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/2.2/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/2.2/howto/static-files/
+
+STATIC_URL = '/static/'
diff --git a/python/eh_util/eh_util/urls.py b/python/eh_util/eh_util/urls.py
new file mode 100644 (file)
index 0000000..3d7abc2
--- /dev/null
@@ -0,0 +1,22 @@
+"""eh_util URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+    https://docs.djangoproject.com/en/2.2/topics/http/urls/
+Examples:
+Function views
+    1. Add an import:  from my_app import views
+    2. Add a URL to urlpatterns:  path('', views.home, name='home')
+Class-based views
+    1. Add an import:  from other_app.views import Home
+    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
+Including another URLconf
+    1. Import the include() function: from django.urls import include, path
+    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import include, path
+
+urlpatterns = [
+    path('admin/', admin.site.urls),
+    path('eh-abgleich/', include('eh_abgleich.urls')),
+]
diff --git a/python/eh_util/eh_util/wsgi.py b/python/eh_util/eh_util/wsgi.py
new file mode 100644 (file)
index 0000000..f5cccf3
--- /dev/null
@@ -0,0 +1,16 @@
+"""
+WSGI config for eh_util project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eh_util.settings')
+
+application = get_wsgi_application()