Generalize email system with invoice workflow and Stiftungsgeschichte category

- Rename DestinataerEmailEingang → EmailEingang with category support
  (destinataer, rechnung, land_pacht, stiftungsgeschichte, allgemein)
- Add invoice capture workflow: create Verwaltungskosten from email,
  link DMS documents as invoice attachments, track payment status
- Add Stiftungsgeschichte email category with auto-detection patterns
  (Ahnenforschung, Genealogie, Chronik, etc.) and DMS integration
- Update poll_emails task with category detection and DMS context mapping
- Show available history documents in Geschichte editor sidebar
- Consolidate DMS views, remove legacy dokument templates
- Update all detail/form templates for DMS document linking
- Add deploy.sh script and streamline compose.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
SysAdmin Agent
2026-03-12 10:17:14 +00:00
parent f4fc512ad3
commit e6f4c5ba1b
44 changed files with 1076 additions and 3428 deletions

View File

@@ -177,6 +177,35 @@
</p>
</div>
</div>
{% if geschichte_dokumente %}
<div class="card mt-3">
<div class="card-header bg-dark text-white">
<h6 class="mb-0"><i class="fas fa-landmark me-2"></i>Verfuegbare Geschichtsdokumente</h6>
</div>
<div class="card-body p-0">
<div class="list-group list-group-flush">
{% for dok in geschichte_dokumente %}
<div class="list-group-item">
<div class="d-flex justify-content-between align-items-start">
<div>
<div class="small fw-bold">{{ dok.titel|truncatechars:40 }}</div>
<small class="text-muted">{{ dok.dateiname_original }} ({{ dok.get_human_size }})</small>
<br><small class="text-muted">{{ dok.erstellt_am|date:"d.m.Y" }}</small>
</div>
<a href="{% url 'stiftung:dms_download' dok.pk %}" class="btn btn-sm btn-outline-primary" title="Herunterladen">
<i class="fas fa-download"></i>
</a>
</div>
</div>
{% endfor %}
</div>
</div>
<div class="card-footer small text-muted">
Dokumente aus dem DMS mit Kontext "Stiftungsgeschichte". Eingegangen per E-Mail oder manuell hochgeladen.
</div>
</div>
{% endif %}
</div>
</div>
{% endblock %}