- Add dotenv loading to Django settings - Update CI workflow to use correct environment variables - Set POSTGRES_* variables instead of DATABASE_URL - Add environment variables to all Django management commands - Fixes CI test failures due to database connection issues
161 lines
10 KiB
Python
161 lines
10 KiB
Python
from django.urls import path
|
|
from . import views
|
|
|
|
app_name = 'stiftung'
|
|
|
|
urlpatterns = [
|
|
# Dashboard (Startseite)
|
|
path('', views.dashboard, name='dashboard'),
|
|
|
|
# Home (für Kompatibilität mit bestehenden Templates)
|
|
path('home/', views.home, name='home'),
|
|
|
|
# CSV Import URLs
|
|
path('import/', views.csv_import_list, name='csv_import_list'),
|
|
path('import/neu/', views.csv_import_create, name='csv_import_create'),
|
|
|
|
# Destinatär URLs (Förderungsempfänger)
|
|
path('destinataere/', views.destinataer_list, name='destinataer_list'),
|
|
path('destinataere/<uuid:pk>/', views.destinataer_detail, name='destinataer_detail'),
|
|
path('destinataere/neu/', views.destinataer_create, name='destinataer_create'),
|
|
path('destinataere/<uuid:pk>/bearbeiten/', views.destinataer_update, name='destinataer_update'),
|
|
path('destinataere/<uuid:pk>/loeschen/', views.destinataer_delete, name='destinataer_delete'),
|
|
path('destinataere/<uuid:pk>/notiz/', views.destinataer_notiz_create, name='destinataer_notiz_create'),
|
|
path('destinataere/<uuid:pk>/export/', views.destinataer_export, name='destinataer_export'),
|
|
|
|
# Paechter URLs (Landpächter)
|
|
path('paechter/', views.paechter_list, name='paechter_list'),
|
|
path('paechter/<uuid:pk>/', views.paechter_detail, name='paechter_detail'),
|
|
path('paechter/neu/', views.paechter_create, name='paechter_create'),
|
|
path('paechter/<uuid:pk>/bearbeiten/', views.paechter_update, name='paechter_update'),
|
|
path('paechter/<uuid:pk>/loeschen/', views.paechter_delete, name='paechter_delete'),
|
|
path('paechter/<uuid:pk>/export/', views.paechter_export, name='paechter_export'),
|
|
|
|
# Legacy Person URLs removed (Destinatäre ersetzen Personen)
|
|
|
|
# Land URLs
|
|
path('laendereien/', views.land_list, name='land_list'),
|
|
path('laendereien/<uuid:pk>/', views.land_detail, name='land_detail'),
|
|
path('laendereien/neu/', views.land_create, name='land_create'),
|
|
path('laendereien/<uuid:pk>/bearbeiten/', views.land_update, name='land_update'),
|
|
path('laendereien/<uuid:pk>/loeschen/', views.land_delete, name='land_delete'),
|
|
path('laendereien/<uuid:pk>/export/', views.land_export, name='land_export'),
|
|
|
|
# Landabrechnung URLs
|
|
path('landabrechnungen/', views.land_abrechnung_list, name='land_abrechnung_list'),
|
|
path('landabrechnungen/<uuid:pk>/', views.land_abrechnung_detail, name='land_abrechnung_detail'),
|
|
path('landabrechnungen/neu/', views.land_abrechnung_create, name='land_abrechnung_create'),
|
|
path('landabrechnungen/<uuid:pk>/bearbeiten/', views.land_abrechnung_update, name='land_abrechnung_update'),
|
|
path('landabrechnungen/<uuid:pk>/loeschen/', views.land_abrechnung_delete, name='land_abrechnung_delete'),
|
|
|
|
# Vereinheitlichte Verpachtung URLs (direkt im Land)
|
|
path('laendereien/<uuid:land_pk>/verpachtung/neu/', views.land_verpachtung_create, name='land_verpachtung_create'),
|
|
path('laendereien/<uuid:land_pk>/verpachtung/bearbeiten/', views.land_verpachtung_edit, name='land_verpachtung_edit'),
|
|
path('laendereien/<uuid:land_pk>/verpachtung/beenden/', views.land_verpachtung_end, name='land_verpachtung_end'),
|
|
|
|
# LandVerpachtung URLs (neue Verpachtungen)
|
|
path('laendereien/verpachtungen/<uuid:pk>/', views.land_verpachtung_detail, name='land_verpachtung_detail'),
|
|
path('laendereien/verpachtungen/<uuid:pk>/bearbeiten/', views.land_verpachtung_update, name='land_verpachtung_update'),
|
|
path('laendereien/verpachtungen/<uuid:pk>/beenden/', views.land_verpachtung_end_direct, name='land_verpachtung_end_direct'),
|
|
|
|
# Förderung URLs
|
|
path('foerderungen/', views.foerderung_list, name='foerderung_list'),
|
|
path('foerderungen/<uuid:pk>/', views.foerderung_detail, name='foerderung_detail'),
|
|
path('foerderungen/neu/', views.foerderung_create, name='foerderung_create'),
|
|
path('foerderungen/<uuid:pk>/bearbeiten/', views.foerderung_update, name='foerderung_update'),
|
|
path('foerderungen/<uuid:pk>/loeschen/', views.foerderung_delete, name='foerderung_delete'),
|
|
|
|
# Dokumente URLs
|
|
path('dokumente/', views.dokument_list, name='dokument_list'),
|
|
path('dokumente/<uuid:pk>/', views.dokument_detail, name='dokument_detail'),
|
|
path('dokumente/neu/', views.dokument_create, name='dokument_create'),
|
|
path('dokumente/<uuid:pk>/bearbeiten/', views.dokument_update, name='dokument_update'),
|
|
path('dokumente/<uuid:pk>/loeschen/', views.dokument_delete, name='dokument_delete'),
|
|
|
|
# Dokumentenverwaltung (Paperless-Integration, Verwaltung & Verknüpfung)
|
|
path('dokumente/verwaltung/', views.dokument_management, name='dokument_management'),
|
|
|
|
# Legacy document URLs removed - use dokument_management instead
|
|
|
|
# Dokument-Verknüpfung
|
|
path('api/link-document/search/', views.link_document_search, name='link_document_search'),
|
|
path('api/link-document/create/', views.link_document_create, name='link_document_create'),
|
|
path('api/link-document/list/', views.link_document_list, name='link_document_list'),
|
|
path('api/link-document/update/', views.link_document_update, name='link_document_update'),
|
|
path('api/link-document/delete/<uuid:link_id>/', views.link_document_delete, name='link_document_delete'),
|
|
# Legacy dokument_verknuepfung URL removed - use dokument_management instead
|
|
|
|
# Jahresbericht URLs
|
|
path('berichte/', views.bericht_list, name='bericht_list'),
|
|
path('berichte/jahresbericht/', views.jahresbericht_generate_redirect, name='jahresbericht_generate_redirect'),
|
|
path('berichte/jahresbericht/<int:jahr>/', views.jahresbericht_generate, name='jahresbericht_generate'),
|
|
path('berichte/jahresbericht/<int:jahr>/pdf/', views.jahresbericht_pdf, name='jahresbericht_pdf'),
|
|
|
|
# Geschäftsführung URLs
|
|
path('geschaeftsfuehrung/', views.geschaeftsfuehrung, name='geschaeftsfuehrung'),
|
|
path('geschaeftsfuehrung/konten/', views.konto_list, name='konto_list'),
|
|
path('geschaeftsfuehrung/konten/neu/', views.konto_create, name='konto_create'),
|
|
path('geschaeftsfuehrung/konten/<uuid:pk>/', views.konto_detail, name='konto_detail'),
|
|
path('geschaeftsfuehrung/konten/<uuid:pk>/bearbeiten/', views.konto_edit, name='konto_edit'),
|
|
path('geschaeftsfuehrung/verwaltungskosten/', views.verwaltungskosten_list, name='verwaltungskosten_list'),
|
|
path('geschaeftsfuehrung/verwaltungskosten/neu/', views.verwaltungskosten_create, name='verwaltungskosten_create'),
|
|
path('geschaeftsfuehrung/verwaltungskosten/<uuid:pk>/bearbeiten/', views.verwaltungskosten_edit, name='verwaltungskosten_edit'),
|
|
path('verwaltungskosten/mark-paid/', views.mark_expense_paid, name='mark_expense_paid'),
|
|
path('geschaeftsfuehrung/rentmeister/', views.rentmeister_list, name='rentmeister_list'),
|
|
path('geschaeftsfuehrung/rentmeister/neu/', views.rentmeister_create, name='rentmeister_create'),
|
|
path('geschaeftsfuehrung/rentmeister/<uuid:pk>/', views.rentmeister_detail, name='rentmeister_detail'),
|
|
path('geschaeftsfuehrung/rentmeister/<uuid:pk>/bearbeiten/', views.rentmeister_edit, name='rentmeister_edit'),
|
|
path('geschaeftsfuehrung/rentmeister/<uuid:pk>/ausgaben/', views.rentmeister_ausgaben, name='rentmeister_ausgaben'),
|
|
|
|
# Administration URLs
|
|
path('administration/', views.administration, name='administration'),
|
|
path('administration/settings/', views.app_settings, name='app_settings'),
|
|
path('administration/audit-log/', views.audit_log_list, name='audit_log_list'),
|
|
path('administration/backup/', views.backup_management, name='backup_management'),
|
|
path('administration/backup/<uuid:backup_id>/download/', views.backup_download, name='backup_download'),
|
|
path('administration/backup/restore/', views.backup_restore, name='backup_restore'),
|
|
path('administration/unterstuetzungen/', views.unterstuetzungen_list, name='unterstuetzungen_list'),
|
|
path('administration/unterstuetzungen/<uuid:pk>/bearbeiten/', views.unterstuetzung_edit, name='unterstuetzung_edit'),
|
|
path('administration/unterstuetzungen/<uuid:pk>/loeschen/', views.unterstuetzung_delete, name='unterstuetzung_delete'),
|
|
|
|
# Unterstützungen URLs (direct access from Destinataer)
|
|
path('unterstuetzungen/', views.unterstuetzungen_all, name='unterstuetzungen_all'),
|
|
path('unterstuetzungen/neu/', views.unterstuetzung_create, name='unterstuetzung_create'),
|
|
path('unterstuetzungen/<uuid:pk>/', views.unterstuetzung_detail, name='unterstuetzung_detail'),
|
|
path('unterstuetzungen/<uuid:pk>/bezahlt/', views.unterstuetzung_mark_paid, name='unterstuetzung_mark_paid'),
|
|
path('unterstuetzungen/wiederkehrend/', views.wiederkehrende_unterstuetzungen, name='wiederkehrende_unterstuetzungen'),
|
|
|
|
# AJAX endpoints
|
|
path('api/destinataer/<uuid:destinataer_id>/info/', views.get_destinataer_info, name='get_destinataer_info'),
|
|
|
|
# Authentication URLs
|
|
path('login/', views.user_login, name='login'),
|
|
path('logout/', views.user_logout, name='logout'),
|
|
|
|
# User Management URLs
|
|
path('administration/users/', views.user_management, name='user_management'),
|
|
path('administration/users/create/', views.user_create, name='user_create'),
|
|
path('administration/users/<int:pk>/', views.user_detail, name='user_detail'),
|
|
path('administration/users/<int:pk>/edit/', views.user_edit, name='user_edit'),
|
|
path('administration/users/<int:pk>/password/', views.user_change_password, name='user_change_password'),
|
|
path('administration/users/<int:pk>/permissions/', views.user_permissions, name='user_permissions'),
|
|
path('administration/users/<int:pk>/delete/', views.user_delete, name='user_delete'),
|
|
|
|
# Hilfsbox URLs
|
|
path('help-box/edit/', views.edit_help_box, name='edit_help_box'),
|
|
path('help-box/admin/', views.edit_help_box, name='help_boxes_admin'),
|
|
|
|
# API URLs
|
|
path('api/land-stats/', views.land_stats_api, name='land_stats_api'),
|
|
path('api/health/', views.health_check, name='health_check'),
|
|
path('api/paperless/ping/', views.paperless_ping, name='paperless_ping'),
|
|
path('api/paperless/documents/', views.paperless_documents, name='paperless_documents'),
|
|
path('api/paperless/tags/', views.paperless_tags_only, name='paperless_tags_only'),
|
|
path('api/paperless/debug/', views.paperless_debug, name='paperless_debug'),
|
|
path('api/paperless/documents/<int:doc_id>/', views.paperless_document_redirect, name='paperless_document_redirect'),
|
|
|
|
# Gramps integration (probe)
|
|
path('api/gramps/search/', views.gramps_search_api, name='gramps_search_api'),
|
|
path('api/gramps/debug/', views.gramps_debug_api, name='gramps_debug_api'),
|
|
]
|