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

@@ -24,7 +24,7 @@
</div>
<div class="card-body">
<p class="text-muted mb-4">
Generieren Sie detaillierte Jahresberichte mit allen wichtigen Informationen zu Personen,
Generieren Sie detaillierte Jahresberichte mit allen wichtigen Informationen zu Destinatären,
Förderungen und Ländereien.
</p>
@@ -83,8 +83,8 @@
<div class="card bg-primary text-white">
<div class="card-body text-center">
<i class="fas fa-users fa-2x mb-2"></i>
<h5 class="card-title">Personen</h5>
<h3 class="card-text">{{ total_persons|default:"0" }}</h3>
<h5 class="card-title">Destinatäre</h5>
<h3 class="card-text">{{ total_destinataere|default:"0" }}</h3>
</div>
</div>
</div>
@@ -129,8 +129,8 @@
<div class="mt-4">
<h6 class="text-primary">Schnellzugriff:</h6>
<div class="d-grid gap-2">
<a href="{% url 'stiftung:person_list' %}" class="btn btn-outline-primary">
<i class="fas fa-users me-2"></i>Alle Personen anzeigen
<a href="{% url 'stiftung:destinataer_list' %}" class="btn btn-outline-primary">
<i class="fas fa-users me-2"></i>Alle Destinatäre anzeigen
</a>
<a href="{% url 'stiftung:foerderung_list' %}" class="btn btn-outline-success">
<i class="fas fa-gift me-2"></i>Alle Förderungen anzeigen