Neues System zur automatischen Verarbeitung eingehender E-Mails von
Destinatären. IMAP-Polling alle 15 Minuten via Celery Beat, automatische
Zuordnung zu Destinatären anhand der E-Mail-Adresse, Upload von Anhängen
zu Paperless-NGX.
Umfasst:
- DestinataerEmailEingang Model mit Status-Tracking
- Celery Task für IMAP-Polling und Paperless-Integration
- Web-UI (Liste + Detail) mit Such- und Filterfunktion
- Admin-Interface mit Bulk-Actions
- Agent-Dokumentation (SysAdmin, RentmeisterAI)
- Dev-Environment Modernisierung (docker compose v2)
Reviewed by: SysAdmin (STI-15), RentmeisterAI (STI-16)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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
🆕 NEW FEATURES:
- Wiki-style Geschichte (History) section with rich text editor
- Image upload support for history pages
- Quill.js rich text editor with formatting options
- Slug-based URLs for SEO-friendly history pages
- Image galleries with descriptions and alt-text support
🔧 MODELS:
- GeschichteSeite: Main history pages with rich content
- GeschichteBild: Image attachments for history pages
- Auto-generated slugs, sorting, publishing controls
📝 TEMPLATES:
- geschichte/liste.html: Card-based overview of all history pages
- geschichte/detail.html: Full page view with image gallery
- geschichte/form.html: Rich text editor for creating/editing pages
- geschichte/bild_form.html: Image upload interface
🎨 UI IMPROVEMENTS:
- Reorganized navigation menu into logical groups:
* Menschen & Finanzen (People & Finance)
* Immobilien & Land (Real Estate & Land)
* Verwaltung (Administration)
* Geschichte (History)
- More compact menu design saving horizontal space
- Better grouping with dropdown headers
🛠️ TECHNICAL:
- Rich text editor with Quill.js integration
- Image upload with validation and optimization
- Permission-based access controls
- Responsive design for all screen sizes
- Proper breadcrumb navigation
- Auto-slug generation from titles
This migration will automatically run during deployment and update
all existing quarterly confirmation deadlines to the new semester-based system:
- Q1: March 15 (Spring semester primary submission)
- Q2: June 15 (auto-approved when Q1 approved)
- Q3: September 15 (Fall semester primary submission)
- Q4: December 15 (auto-approved when Q3 approved)
No manual intervention required on VPS - GitHub Action will deploy and migrate automatically.
- Update quarterly confirmation deadlines to semester-based schedule:
- Q1: March 15 (covers Spring semester Q1+Q2)
- Q2: June 15 (auto-approved when Q1 approved)
- Q3: September 15 (covers Fall semester Q3+Q4)
- Q4: December 15 (auto-approved when Q3 approved)
- Add auto-approval functionality:
- Q1 approval automatically approves Q2 with same document status
- Q3 approval automatically approves Q4 with same document status
- New 'auto_geprueft' status with distinct badge UI
- Maintain quarterly payment cycle while simplifying document submissions
- Remove modal edit functionality, keep full-screen editor only
- Update copilot instructions documentation
Changes align with academic semester system where students submit
documents twice yearly instead of quarterly.
Features added:
- ✅ Fixed quarterly confirmation approval system with URL pattern
- ✅ Added re-approval and status reset functionality for quarterly confirmations
- ✅ Synchronized quarterly approval status with support payment system
- ✅ Enhanced Destinataer export with missing fields (anrede, titel, mobil)
- ✅ Added quarterly confirmation data and documents to export system
- ✅ Fixed address field display issues in destinataer template
- ✅ Added quarterly statistics dashboard to support payment lists
- ✅ Implemented duplicate support payment prevention and cleanup
- ✅ Added visual indicators for quarterly-linked support payments
Technical improvements:
- Enhanced create_quarterly_support_payment() with duplicate detection
- Added get_related_support_payment() method to VierteljahresNachweis model
- Improved quarterly confirmation workflow with proper status transitions
- Added computed address property to Destinataer model
- Fixed template field mismatches (anrede, titel, mobil vs strasse, plz, ort)
- Enhanced backup system with operation tracking and cancellation
Workflow enhancements:
- Quarterly confirmations now properly sync with support payments
- Single support payment per destinataer per quarter (no duplicates)
- Approval button works for both eingereicht and geprueft status
- Reset functionality allows workflow restart
- Export includes complete quarterly data with uploaded documents
- Add VierteljahresNachweis model for quarterly document tracking
- Remove studiennachweis_erforderlich field (now always required)
- Fix modal edit view to include studiennachweis section
- Implement automatic DestinataerUnterstuetzung creation when requirements met
- Set payment due dates to exact quarter end dates (Mar 31, Jun 30, Sep 30, Dec 31)
- Add quarterly confirmation CRUD views with modal and full-screen editing
- Update templates with comprehensive quarterly management interface
- Include proper validation, status tracking, and progress indicators
- Add inline edit mode to destinataer detail view with AJAX save/cancel
- Fix form validation by aligning select choices with model definitions
- Update Destinataer model to make familienzweig and berufsgruppe optional
- Fix StiftungsKonto integration in forms and views
- Redesign destinataer list view with new column layout:
* Vorname, Nachname, E-Mail, Vierteljährlicher Betrag
* Letzter Studiennachweis, Unterstützung bestätigt, Aktionen
- Improve form styling and user experience
- Add proper field validation and error handling
- Enhance UI with better badges, icons, and formatting
- Apply Black formatting to all Python files in core and stiftung modules
- Fix import statement ordering with isort
- Ensure all code meets automated quality standards
- Resolve CI/CD pipeline formatting failures
- Maintain consistent code style across the entire codebase
- Add dotenv loading to Django settings
- Update CI workflow to use correct environment variables
- Set POSTGRES_* variables instead of DATABASE_URL
- Add environment variables to all Django management commands
- Fixes CI test failures due to database connection issues