- 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>
173 lines
9.6 KiB
HTML
173 lines
9.6 KiB
HTML
{% extends 'base.html' %}
|
|
{% load static %}
|
|
|
|
{% block title %}{{ title }} - Stiftungsverwaltung{% endblock %}
|
|
|
|
{% block content %}
|
|
|
|
<div class="row">
|
|
<div class="col-lg-8 mx-auto">
|
|
<div class="card shadow">
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
<h4 class="mb-0">
|
|
<i class="fas fa-gift text-primary me-2"></i>Förderung Details
|
|
</h4>
|
|
<div class="btn-group" role="group">
|
|
<a href="{% url 'stiftung:foerderung_update' foerderung.pk %}" class="btn btn-warning">
|
|
<i class="fas fa-edit me-1"></i>Bearbeiten
|
|
</a>
|
|
<a href="{% url 'stiftung:foerderung_delete' foerderung.pk %}" class="btn btn-danger">
|
|
<i class="fas fa-trash me-1"></i>Löschen
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h6 class="text-primary">Person</h6>
|
|
<p class="mb-3">
|
|
{% if foerderung.destinataer %}
|
|
<a href="{% url 'stiftung:destinataer_detail' foerderung.destinataer.pk %}">
|
|
{{ foerderung.destinataer.get_full_name }}
|
|
</a>
|
|
{% else %}
|
|
<em class="text-muted">Keine Person zugeordnet</em>
|
|
{% endif %}
|
|
</p>
|
|
|
|
<h6 class="text-primary">Jahr</h6>
|
|
<p class="mb-3">{{ foerderung.jahr }}</p>
|
|
|
|
<h6 class="text-primary">Betrag</h6>
|
|
<p class="mb-3">€{{ foerderung.betrag|floatformat:2 }}</p>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<h6 class="text-primary">Kategorie</h6>
|
|
<p class="mb-3">
|
|
<span class="badge bg-secondary">{{ foerderung.get_kategorie_display }}</span>
|
|
</p>
|
|
|
|
<h6 class="text-primary">Status</h6>
|
|
<p class="mb-3">
|
|
<span class="badge bg-{{ foerderung.get_status_color }}">{{ foerderung.get_status_display }}</span>
|
|
</p>
|
|
|
|
<h6 class="text-primary">Antragsdatum</h6>
|
|
<p class="mb-3">{{ foerderung.antragsdatum|date:"d.m.Y" }}</p>
|
|
</div>
|
|
</div>
|
|
|
|
{% if foerderung.entscheidungsdatum %}
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h6 class="text-primary">Entscheidungsdatum</h6>
|
|
<p class="mb-3">{{ foerderung.entscheidungsdatum|date:"d.m.Y" }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if foerderung.verwendungsnachweis %}
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<h6 class="text-primary">Verwendungsnachweis</h6>
|
|
<p class="mb-3">
|
|
{{ foerderung.verwendungsnachweis.titel }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Dokumente (DMS) -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="d-flex justify-content-between align-items-center mb-2">
|
|
<h6 class="text-primary mb-0">Dokumente</h6>
|
|
<a href="{% url 'stiftung:dms_upload' %}?foerderung={{ foerderung.pk }}" class="btn btn-sm btn-success">
|
|
<i class="fas fa-upload me-1"></i>Dokument hochladen
|
|
</a>
|
|
</div>
|
|
{% if verknuepfte_dokumente %}
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-hover">
|
|
<thead class="table-light">
|
|
<tr>
|
|
<th>Dokument</th>
|
|
<th>Kontext</th>
|
|
<th>Beschreibung</th>
|
|
<th>Aktionen</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for dokument in verknuepfte_dokumente %}
|
|
<tr>
|
|
<td>
|
|
<strong>{{ dokument.titel }}</strong>
|
|
{% if dokument.dateiname_original %}<br><small class="text-muted">{{ dokument.dateiname_original }} ({{ dokument.get_human_size }})</small>{% endif %}
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary">{{ dokument.get_kontext_display }}</span>
|
|
</td>
|
|
<td>
|
|
{% if dokument.beschreibung %}
|
|
{{ dokument.beschreibung|truncatewords:8 }}
|
|
{% else %}
|
|
<span class="text-muted">Keine Beschreibung</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
<div class="btn-group" role="group">
|
|
<a href="{% url 'stiftung:dms_download' dokument.pk %}" class="btn btn-sm btn-outline-primary" title="Herunterladen">
|
|
<i class="fas fa-download"></i>
|
|
</a>
|
|
<a href="{% url 'stiftung:dms_edit' dokument.pk %}" class="btn btn-sm btn-outline-warning" title="Bearbeiten">
|
|
<i class="fas fa-edit"></i>
|
|
</a>
|
|
<a href="{% url 'stiftung:dms_delete' dokument.pk %}" class="btn btn-sm btn-outline-danger" title="Löschen">
|
|
<i class="fas fa-trash"></i>
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% else %}
|
|
<div class="text-center py-3">
|
|
<i class="fas fa-file-alt fa-2x text-muted mb-2"></i>
|
|
<p class="text-muted mb-2">Keine Dokumente vorhanden</p>
|
|
<a href="{% url 'stiftung:dms_upload' %}?foerderung={{ foerderung.pk }}" class="btn btn-success btn-sm">
|
|
<i class="fas fa-upload me-1"></i>Erstes Dokument hochladen
|
|
</a>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
{% if foerderung.bemerkungen %}
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<h6 class="text-primary">Bemerkungen</h6>
|
|
<p class="mb-3">{{ foerderung.bemerkungen }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<hr class="my-4">
|
|
|
|
<div class="d-flex justify-content-between">
|
|
<a href="{% url 'stiftung:foerderung_list' %}" class="btn btn-secondary">
|
|
<i class="fas fa-arrow-left me-2"></i>Zurück zur Liste
|
|
</a>
|
|
<a href="{% url 'stiftung:foerderung_update' foerderung.pk %}" class="btn btn-primary">
|
|
<i class="fas fa-edit me-2"></i>Bearbeiten
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|