Fix payment system balance integration and add calendar functionality

- Implement automated payment tracking with Django signals
- Fix duplicate transaction creation with unique referenz system
- Add calendar system with CRUD operations and event management
- Reorganize navigation menu (rename sections, move admin functions)
- Replace Geschichte editor with EasyMDE markdown editor
- Add management commands for balance reconciliation
- Create missing transactions for previously paid payments
- Ensure account balances accurately reflect all payment activity

Features added:
- Calendar entries creation and administration via menu
- Payment status tracking with automatic balance updates
- Duplicate prevention for payment transactions
- Markdown editor with live preview for Geschichte pages
- Database reconciliation tools for payment/balance sync

Bug fixes:
- Resolved IntegrityError on payment status changes
- Fixed missing account balance updates for paid payments
- Prevented duplicate balance deductions on re-saves
- Corrected menu structure and admin function placement
This commit is contained in:
2025-10-05 00:38:18 +02:00
parent 2961f376c3
commit c289cc3c58
36 changed files with 4039 additions and 99 deletions

View File

@@ -525,14 +525,19 @@
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="{% url 'stiftung:home' %}">
<i class="fas fa-home me-1"></i>Home
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'stiftung:dashboard' %}">
<i class="fas fa-tachometer-alt me-1"></i>Dashboard
</a>
</li>
<!-- Menschen & Finanzen -->
<!-- Destinatäre -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="personenDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-users me-1"></i>Menschen & Finanzen
<i class="fas fa-users me-1"></i>Destinatäre
</a>
<ul class="dropdown-menu" aria-labelledby="personenDropdown">
<li><h6 class="dropdown-header">Destinatäre</h6></li>
@@ -558,18 +563,13 @@
<li><a class="dropdown-item" href="{% url 'stiftung:unterstuetzung_create' %}">
<i class="fas fa-plus me-2"></i>Neue Unterstützung
</a></li>
<li><hr class="dropdown-divider"></li>
<li><h6 class="dropdown-header">Pächter</h6></li>
<li><a class="dropdown-item" href="{% url 'stiftung:paechter_list' %}">
<i class="fas fa-user-tie me-2"></i>Alle Pächter
</a></li>
</ul>
</li>
<!-- Immobilien & Land -->
<!-- Land & Pacht -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="immobilienDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-tree me-1"></i>Immobilien & Land
<i class="fas fa-tree me-1"></i>Land & Pacht
</a>
<ul class="dropdown-menu" aria-labelledby="immobilienDropdown">
<li><h6 class="dropdown-header">Ländereien</h6></li>
@@ -595,6 +595,11 @@
<li><a class="dropdown-item" href="{% url 'stiftung:land_abrechnung_create' %}">
<i class="fas fa-plus me-2"></i>Neue Abrechnung
</a></li>
<li><hr class="dropdown-divider"></li>
<li><h6 class="dropdown-header">Pächter</h6></li>
<li><a class="dropdown-item" href="{% url 'stiftung:paechter_list' %}">
<i class="fas fa-user-tie me-2"></i>Alle Pächter
</a></li>
</ul>
</li>
@@ -610,6 +615,31 @@
<li><a class="dropdown-item" href="{% url 'stiftung:geschaeftsfuehrung' %}">
<i class="fas fa-briefcase me-2"></i>Geschäftsführung
</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="{% url 'stiftung:administration' %}">
<i class="fas fa-cogs me-2"></i>Administration
</a></li>
</ul>
</li>
<!-- Kalender -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="kalenderDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-calendar-alt me-1"></i>Kalender
</a>
<ul class="dropdown-menu" aria-labelledby="kalenderDropdown">
<li><h6 class="dropdown-header">Ansichten</h6></li>
<li><a class="dropdown-item" href="{% url 'stiftung:kalender' %}">
<i class="fas fa-calendar me-2"></i>Kalender anzeigen
</a></li>
<li><hr class="dropdown-divider"></li>
<li><h6 class="dropdown-header">Verwaltung</h6></li>
<li><a class="dropdown-item" href="{% url 'stiftung:kalender_admin' %}">
<i class="fas fa-cogs me-2"></i>Kalender Administration
</a></li>
<li><a class="dropdown-item" href="{% url 'stiftung:kalender_create' %}">
<i class="fas fa-plus me-2"></i>Neuer Termin
</a></li>
</ul>
</li>
@@ -619,11 +649,6 @@
<i class="fas fa-book-open me-1"></i>Geschichte
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'stiftung:administration' %}">
<i class="fas fa-cogs me-1"></i>Administration
</a>
</li>
<!-- User Menu -->
{% if user.is_authenticated %}
@@ -672,9 +697,10 @@
</a>
</li>
{% endif %}
</div>
</ul>
</div>
</nav>
</div>
</nav>
<!-- Content Wrapper -->
<div id="content-wrapper" class="d-flex flex-column">