from django.urls import include, path from . import views app_name = "stiftung" urlpatterns = [ # AI Agent path("agent/", include("stiftung.agent.urls")), # Home - Main landing page after login path("", views.home, name="home"), # CSV Import URLs (legacy) path("import/", views.csv_import_list, name="csv_import_list"), path("import/neu/", views.csv_import_create, name="csv_import_create"), # Unified Import/Export Hub path("daten/", views.import_export_hub, name="import_export_hub"), path("daten/export/", views.csv_export, name="csv_export"), path("daten/import/upload/", views.csv_import_upload, name="csv_import_upload"), path("daten/import/ausfuehren/", views.csv_import_execute, name="csv_import_execute"), # Destinatär URLs (Förderungsempfänger) path("destinataere/", views.destinataer_list, name="destinataer_list"), path( "destinataere//", views.destinataer_detail, name="destinataer_detail" ), path("destinataere/neu/", views.destinataer_create, name="destinataer_create"), path( "destinataere//bearbeiten/", views.destinataer_update, name="destinataer_update", ), path( "destinataere//loeschen/", views.destinataer_delete, name="destinataer_delete", ), path( "destinataere//archivieren/", views.destinataer_toggle_archiv, name="destinataer_toggle_archiv", ), path( "destinataere//notiz/", views.destinataer_notiz_create, name="destinataer_notiz_create", ), path( "destinataere//export/", views.destinataer_export, name="destinataer_export", ), # Paechter URLs (Landpächter) path("paechter/", views.paechter_list, name="paechter_list"), path("paechter//", views.paechter_detail, name="paechter_detail"), path("paechter/neu/", views.paechter_create, name="paechter_create"), path( "paechter//bearbeiten/", views.paechter_update, name="paechter_update" ), path("paechter//loeschen/", views.paechter_delete, name="paechter_delete"), path("paechter//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//", views.land_detail, name="land_detail"), path("laendereien/neu/", views.land_create, name="land_create"), path("laendereien//bearbeiten/", views.land_update, name="land_update"), path("laendereien//loeschen/", views.land_delete, name="land_delete"), path("laendereien//export/", views.land_export, name="land_export"), # Landabrechnung URLs path("landabrechnungen/", views.land_abrechnung_list, name="land_abrechnung_list"), path( "landabrechnungen//", views.land_abrechnung_detail, name="land_abrechnung_detail", ), path( "landabrechnungen/neu/", views.land_abrechnung_create, name="land_abrechnung_create", ), path( "landabrechnungen//bearbeiten/", views.land_abrechnung_update, name="land_abrechnung_update", ), path( "landabrechnungen//loeschen/", views.land_abrechnung_delete, name="land_abrechnung_delete", ), # Vereinheitlichte Verpachtung URLs (direkt im Land) path( "laendereien//verpachtung/neu/", views.land_verpachtung_create, name="land_verpachtung_create", ), path( "laendereien//verpachtung/bearbeiten/", views.land_verpachtung_edit, name="land_verpachtung_edit", ), path( "laendereien//verpachtung/beenden/", views.land_verpachtung_end, name="land_verpachtung_end", ), # LandVerpachtung URLs (neue Verpachtungen) path( "laendereien/verpachtungen//", views.land_verpachtung_detail, name="land_verpachtung_detail", ), path( "laendereien/verpachtungen//bearbeiten/", views.land_verpachtung_update, name="land_verpachtung_update", ), path( "laendereien/verpachtungen//beenden/", views.land_verpachtung_end_direct, name="land_verpachtung_end_direct", ), # Verpachtung URLs (Management Overview) path("verpachtungen/", views.verpachtung_list, name="verpachtung_list"), path("verpachtungen//", views.verpachtung_detail, name="verpachtung_detail"), path("verpachtungen/neu/", views.verpachtung_create, name="verpachtung_create"), path( "verpachtungen//bearbeiten/", views.verpachtung_update, name="verpachtung_update", ), path( "verpachtungen//loeschen/", views.verpachtung_delete, name="verpachtung_delete", ), # Förderung URLs path("foerderungen/", views.foerderung_list, name="foerderung_list"), path("foerderungen//", views.foerderung_detail, name="foerderung_detail"), path("foerderungen/neu/", views.foerderung_create, name="foerderung_create"), path( "foerderungen//bearbeiten/", views.foerderung_update, name="foerderung_update", ), path( "foerderungen//loeschen/", views.foerderung_delete, name="foerderung_delete", ), # Dokumente-URLs (DMS) – Legacy-Paperless-URLs entfernt (Phase 3) # Jahresbericht URLs path("berichte/", views.bericht_list, name="bericht_list"), path( "berichte/jahresbericht/", views.jahresbericht_generate_redirect, name="jahresbericht_generate_redirect", ), path( "berichte/jahresbericht//", views.jahresbericht_generate, name="jahresbericht_generate", ), path( "berichte/jahresbericht//pdf/", views.jahresbericht_pdf, name="jahresbericht_pdf", ), path( "berichte/zusammenstellen/", views.bericht_zusammenstellen, name="bericht_zusammenstellen", ), path( "berichte//", views.bericht_vorlage, name="bericht_vorlage", ), # 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//", views.konto_detail, name="konto_detail" ), path( "geschaeftsfuehrung/konten//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//", views.verwaltungskosten_detail, name="verwaltungskosten_detail", ), path( "geschaeftsfuehrung/verwaltungskosten//bearbeiten/", views.verwaltungskosten_edit, name="verwaltungskosten_edit", ), path( "geschaeftsfuehrung/verwaltungskosten//loeschen/", views.verwaltungskosten_delete, name="verwaltungskosten_delete", ), 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//", views.rentmeister_detail, name="rentmeister_detail", ), path( "geschaeftsfuehrung/rentmeister//bearbeiten/", views.rentmeister_edit, name="rentmeister_edit", ), path( "geschaeftsfuehrung/rentmeister//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/email/", views.email_settings, name="email_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//download/", views.backup_download, name="backup_download", ), path("administration/backup/restore/", views.backup_restore, name="backup_restore"), path( "administration/backup//cancel/", views.backup_cancel, name="backup_cancel", ), path( "administration/unterstuetzungen/", views.unterstuetzungen_list, name="unterstuetzungen_list", ), path( "administration/unterstuetzungen//bearbeiten/", views.unterstuetzung_edit, name="unterstuetzung_edit", ), path( "administration/unterstuetzungen//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//", views.unterstuetzung_detail, name="unterstuetzung_detail", ), path( "unterstuetzungen//bezahlt/", views.unterstuetzung_mark_paid, name="unterstuetzung_mark_paid", ), path( "unterstuetzungen/wiederkehrend/", views.wiederkehrende_unterstuetzungen, name="wiederkehrende_unterstuetzungen", ), # AJAX endpoints path( "api/destinataer//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//", views.user_detail, name="user_detail"), path("administration/users//edit/", views.user_edit, name="user_edit"), path( "administration/users//password/", views.user_change_password, name="user_change_password", ), path( "administration/users//permissions/", views.user_permissions, name="user_permissions", ), path( "administration/users//delete/", views.user_delete, name="user_delete" ), # Two-Factor Authentication URLs path("auth/2fa/setup/", views.two_factor_setup, name="two_factor_setup"), path("auth/2fa/qr/", views.two_factor_qr, name="two_factor_qr"), path("auth/2fa/verify/", views.two_factor_verify, name="two_factor_verify"), path("auth/2fa/disable/", views.two_factor_disable, name="two_factor_disable"), path("auth/2fa/backup-tokens/", views.backup_tokens, name="backup_tokens"), # 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"), # Phase 4: Globale Suche (Cmd+K) path("api/suche/", views.globale_suche_api, name="globale_suche_api"), # API URLs path("api/land-stats/", views.land_stats_api, name="land_stats_api"), path("api/health/", views.health_check, name="health_check"), # Veranstaltungsmodul path("veranstaltungen/", views.veranstaltung_list, name="veranstaltung_list"), path("veranstaltungen/neu/", views.veranstaltung_create, name="veranstaltung_create"), path("veranstaltungen//", views.veranstaltung_detail, name="veranstaltung_detail"), path("veranstaltungen//bearbeiten/", views.veranstaltung_update, name="veranstaltung_update"), path("veranstaltungen//loeschen/", views.veranstaltung_delete, name="veranstaltung_delete"), path( "veranstaltungen//serienbrief/", views.veranstaltung_serienbrief_pdf, name="veranstaltung_serienbrief_pdf", ), path( "veranstaltungen//serienbrief-vorschau/", views.veranstaltung_serienbrief_vorschau, name="veranstaltung_serienbrief_vorschau", ), # Teilnehmer CRUD path( "veranstaltungen//teilnehmer/neu/", views.teilnehmer_create, name="teilnehmer_create", ), path( "veranstaltungen//teilnehmer//bearbeiten/", views.teilnehmer_update, name="teilnehmer_update", ), path( "veranstaltungen//teilnehmer//loeschen/", views.teilnehmer_delete, name="teilnehmer_delete", ), # 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"), # Quarterly Confirmations path( "quarterly-confirmations/create//", views.quarterly_confirmation_create, name="quarterly_confirmation_create", ), path( "quarterly-confirmations//edit/", views.quarterly_confirmation_edit, name="quarterly_confirmation_edit", ), path( "quarterly-confirmations//update/", views.quarterly_confirmation_update, name="quarterly_confirmation_update", ), path( "quarterly-confirmations//approve/", views.quarterly_confirmation_approve, name="quarterly_confirmation_approve", ), path( "quarterly-confirmations//reset/", views.quarterly_confirmation_reset, name="quarterly_confirmation_reset", ), # Geschichte URLs path("geschichte/", views.geschichte_list, name="geschichte_list"), path("geschichte/neu/", views.geschichte_create, name="geschichte_create"), path("geschichte//", views.geschichte_detail, name="geschichte_detail"), path("geschichte//bearbeiten/", views.geschichte_edit, name="geschichte_edit"), path("geschichte//bild-upload/", views.geschichte_bild_upload, name="geschichte_bild_upload"), path("geschichte//bild//loeschen/", views.geschichte_bild_delete, name="geschichte_bild_delete"), # E-Mail-Eingang Destinatäre path("email-eingang/", views.email_eingang_list, name="email_eingang_list"), path("email-eingang//", views.email_eingang_detail, name="email_eingang_detail"), path("email-eingang//loeschen/", views.email_eingang_delete, name="email_eingang_delete"), path("email-eingang/poll/", views.email_eingang_poll_trigger, name="email_eingang_poll_trigger"), # Kalender URLs path("kalender/", views.kalender_view, name="kalender"), path("kalender/admin/", views.kalender_admin, name="kalender_admin"), path("kalender/neu/", views.kalender_create, name="kalender_create"), path("kalender//", views.kalender_detail, name="kalender_detail"), path("kalender//bearbeiten/", views.kalender_edit, name="kalender_edit"), path("kalender//loeschen/", views.kalender_delete, name="kalender_delete"), path("kalender/api/events/", views.kalender_api_events, name="kalender_api_events"), # Phase 2: Destinatär-Timeline (2a) path( "destinataere//timeline/", views.destinataer_timeline, name="destinataer_timeline", ), # Phase 2: Nachweis-Board (2b) path("nachweis-board/", views.nachweis_board, name="nachweis_board"), path( "nachweis-board/erinnerung/", views.batch_erinnerung_senden, name="batch_erinnerung_senden", ), # Phase 2: Zahlungs-Pipeline (2c) path("zahlungs-pipeline/", views.zahlungs_pipeline, name="zahlungs_pipeline"), path( "unterstuetzungen//freigeben/", views.unterstuetzung_freigeben, name="unterstuetzung_freigeben", ), path( "unterstuetzungen//nachweis-eingereicht/", views.unterstuetzung_nachweis_eingereicht, name="unterstuetzung_nachweis_eingereicht", ), path( "unterstuetzungen//abschliessen/", views.unterstuetzung_abschliessen, name="unterstuetzung_abschliessen", ), path("sepa-export/", views.sepa_xml_export, name="sepa_xml_export"), # Phase 2: Pächter-Workflow (2d) path("paechter/workflow/", views.paechter_workflow, name="paechter_workflow"), # Phase 4: Upload-Portal – Admin-seitige Auslöser path( "quarterly-confirmations//aufforderung-senden/", views.nachweis_aufforderung_senden, name="nachweis_aufforderung_senden", ), path( "nachweis-board/batch-aufforderung-senden/", views.batch_nachweis_aufforderung_senden, name="batch_nachweis_aufforderung_senden", ), # Phase 5: Onboarding – Admin-Seite path( "destinataere/onboarding/einladen/", views.onboarding_einladung_senden, name="onboarding_einladung_senden", ), path( "destinataere/onboarding/einladungen/", views.onboarding_einladung_liste, name="onboarding_einladung_liste", ), path( "destinataere/onboarding/einladungen//widerrufen/", views.onboarding_einladung_widerrufen, name="onboarding_einladung_widerrufen", ), # Bestätigungsschreiben path( "destinataere//bestaetigung/", views.bestaetigung_vorschau, name="bestaetigung_vorschau", ), path( "destinataere//bestaetigung/versenden/", views.bestaetigung_versenden, name="bestaetigung_versenden", ), # Dokument-Vorlagen-Editor path("administration/vorlagen/", views.vorlagen_liste, name="vorlagen_liste"), path("administration/vorlagen//", views.vorlage_editor, name="vorlage_editor"), path("administration/vorlagen//zuruecksetzen/", views.vorlage_zuruecksetzen, name="vorlage_zuruecksetzen"), path("administration/vorlagen//vorschau/", views.vorlage_vorschau, name="vorlage_vorschau"), path("administration/vorlagen/alle-zuruecksetzen/", views.vorlagen_alle_zuruecksetzen, name="vorlagen_alle_zuruecksetzen"), # Phase 3: DMS – Django-natives Dokumentenmanagement path("dms/", views.dms_list, name="dms_list"), path("dms/hochladen/", views.dms_upload, name="dms_upload"), path("dms/suche/", views.dms_search_api, name="dms_search_api"), path("dms//", views.dms_detail, name="dms_detail"), path("dms//herunterladen/", views.dms_download, name="dms_download"), path("dms//bearbeiten/", views.dms_edit, name="dms_edit"), path("dms//loeschen/", views.dms_delete, name="dms_delete"), ]