Phase 1: Sidebar-Navigation, Dashboard-Cockpit & HTMX-Integration
- New sidebar layout (6 sections: Dashboard, Personen, Land, Finanzen, Dokumente, System) - Collapsible sidebar with localStorage persistence - Top bar with user dropdown and breadcrumbs - Dashboard cockpit with live KPI cards (Destinataere, Foerderungen, Zahlungen, Laendereien) - Action items: overdue Nachweise, pending payments, upcoming events, new emails, expiring leases - Quick actions panel and recent audit log - HTMX (2.0.4) and Alpine.js (3.14.8) integration via CDN - django-htmx middleware and CSRF token setup - Fix IMAP_PORT empty string handling in settings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,6 +35,7 @@ INSTALLED_APPS = [
|
||||
"django.contrib.humanize",
|
||||
"rest_framework",
|
||||
"rest_framework.authtoken",
|
||||
"django_htmx",
|
||||
"django_otp",
|
||||
"django_otp.plugins.otp_totp",
|
||||
"django_otp.plugins.otp_static",
|
||||
@@ -48,6 +49,7 @@ MIDDLEWARE = [
|
||||
"django.middleware.security.SecurityMiddleware",
|
||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||
"django.middleware.common.CommonMiddleware",
|
||||
"django_htmx.middleware.HtmxMiddleware",
|
||||
"django.middleware.csrf.CsrfViewMiddleware",
|
||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||
"django_otp.middleware.OTPMiddleware",
|
||||
@@ -131,7 +133,7 @@ CELERY_BEAT_SCHEDULE = {
|
||||
# IMAP-Konfiguration für E-Mail-Eingang (Destinatäre)
|
||||
# Pflichtfelder: IMAP_HOST, IMAP_USER, IMAP_PASSWORD
|
||||
IMAP_HOST = os.getenv("IMAP_HOST", "")
|
||||
IMAP_PORT = int(os.getenv("IMAP_PORT", "993"))
|
||||
IMAP_PORT = int(os.getenv("IMAP_PORT") or "993")
|
||||
IMAP_USER = os.getenv("IMAP_USER", "paperless@vhtv-stiftung.de")
|
||||
IMAP_PASSWORD = os.getenv("IMAP_PASSWORD", "")
|
||||
IMAP_FOLDER = os.getenv("IMAP_FOLDER", "INBOX")
|
||||
|
||||
Reference in New Issue
Block a user