- Display linked PDFs/documents in the edit form with download links
- Fix "Details ansehen" button to link to detail page
- Redirect edit save to detail page instead of list
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New detail view at /geschaeftsfuehrung/verwaltungskosten/<pk>/
showing invoice data, status, linked DMS documents, and emails
- Status change form in sidebar for quick workflow updates
- Link Verwaltungskosten list items to detail page
- Update email detail to link to VK detail instead of edit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- DMS edit view: add Destinatär, Land, Pächter, Verpachtung dropdowns
so documents can be assigned to entities after upload
- Geschichte: add M2M dokumente field on GeschichteSeite model
- Geschichte form: checkboxes to select/link Stiftungsgeschichte docs
- Geschichte detail: show linked documents in sidebar with download
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
- When manually assigning an email to a Destinatär, also update
associated DokumentLink records so attachments appear in the
Destinatär's Dokumente tab
- Add email delete functionality (view, URL, buttons in list and detail)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add 120s IMAP socket timeout (was unlimited, could hang on large emails)
- Increase Paperless upload timeout from 60s to 300s for large attachments
- Increase manual poll UI timeout from 60s to 300s
- Show error count in UI when emails fail to process
- Log warning when attachment payload is empty/corrupted
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Email settings page at /administration/email/ with IMAP config form
- Connection test button to verify IMAP connectivity
- Sidebar link "E-Mail Eingang" for quick access
- AppConfiguration model extended with email category and password type
- init_config command includes IMAP default settings
- DB-based IMAP config with env var fallback
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The manual "Jetzt abrufen" button now runs synchronously and searches all
emails from the last 30 days instead of only unread ones. This fixes the
issue where already-read emails in IMAP were invisible to the poll task.
Duplicate detection (by sender+date+subject) prevents re-imports.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replaces the old multi-card layout (1368 lines) with a compact, modern
tabbed interface (Stammdaten | Nachweise | Zahlungen | Timeline | Dokumente | Notizen).
All information is now accessible from one page without excessive clicking.
- Add timeline events to destinataer_detail view (merged from timeline view logic)
- Compact profile header with avatar initials, status badges, key contact info
- Inline editing preserved with table-based layout for cleaner data display
- Tab state persisted in URL hash for bookmarkable deep links
- Dropdown menu for less-used actions (export, archive, delete)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The redirect() calls in email_eingang_poll_trigger and email_eingang_detail
were missing the 'stiftung:' namespace prefix, causing NoReverseMatch errors.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add migrate_to_landverpachtung management command that converts
old Land-level pacht fields (aktueller_paechter, pachtbeginn, etc.)
into proper LandVerpachtung records
- Fix SyntaxError in system.py (fancy Unicode quotes in f-strings)
- Ran migration: 1 LandVerpachtung record created for Jens Bodden
The old system stored pacht data directly on the Land model.
The new LandVerpachtung model supports multiple leases per Land.
The verpachtung_list view queries LandVerpachtung, which was empty.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Make Destinatär names clickable in list view (link to detail page)
- Nachweis-Board: auto-create missing VierteljahresNachweis records
for active Destinatäre when viewing a year (fixes missing Q1 2026)
- Add archive/deactivate toggle for Destinatäre (button on detail page)
with AuditLog entry and confirmation dialog
- Default Destinatär list to show active only (filter preset to "Aktiv")
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Paechter model's reverse relation from LandVerpachtung uses
related_name='neue_verpachtungen', not the default 'landverpachtung'.
Fixed the annotate() query in top_paechter section of paechter_workflow view.
The Land model's ForeignKey from LandAbrechnung uses related_name='abrechnungen',
not the default 'landabrechnung'. Fixed the exclude() query in paechter_workflow view.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>