- Add LandVerpachtung model with Land and Paechter relationships - Implement full CRUD operations for Verpachtungen - Add responsive Bootstrap templates with JavaScript calculations - Integrate document linking functionality similar to other entities - Add navigation links and URL patterns - Include CSV import support for Paechter data - Fix template encoding issues for proper UTF-8 support - Enhance administration interface with Verpachtung CSV import This implements the complete Verpachtung management feature requested, allowing users to manage land lease agreements with proper relationships to properties (Laenderei) and tenants (Paechter), following the same patterns as Foerderung/Destinataer relationships.
352 lines
12 KiB
Python
352 lines
12 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",
|
|
),
|
|
# Verpachtung URLs (Management Overview)
|
|
path("verpachtungen/", views.verpachtung_list, name="verpachtung_list"),
|
|
path("verpachtungen/<uuid:pk>/", views.verpachtung_detail, name="verpachtung_detail"),
|
|
path("verpachtungen/neu/", views.verpachtung_create, name="verpachtung_create"),
|
|
path(
|
|
"verpachtungen/<uuid:pk>/bearbeiten/",
|
|
views.verpachtung_update,
|
|
name="verpachtung_update",
|
|
),
|
|
path(
|
|
"verpachtungen/<uuid:pk>/loeschen/",
|
|
views.verpachtung_delete,
|
|
name="verpachtung_delete",
|
|
),
|
|
# 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"),
|
|
]
|