2026-07-23 00:35:40 +02:00
|
|
|
# LeoCRM — Umbau Progress
|
|
|
|
|
|
|
|
|
|
**Plan:** `MASTER-PLAN.md`
|
|
|
|
|
**Start:** 2026-07-23
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Phase 0: Vorbereitung & Cleanup
|
|
|
|
|
|
|
|
|
|
| Task | Status | Datum | Notiz |
|
|
|
|
|
|---|---|---|---|
|
2026-07-23 00:47:23 +02:00
|
|
|
| 0.1 | ✅ done | 2026-07-23 | codebase-vs-requirements.md neu geschrieben, security-review-phase2.md Resolution Summary, architecture.md Implementation Status, MASTER-PLAN.md + PROGRESS.md erstellt |
|
2026-07-23 04:55:58 +02:00
|
|
|
| 0.2 | ✅ done | 2026-07-23 | lucide-react installieren + Icons migrieren |
|
2026-07-23 05:05:08 +02:00
|
|
|
| 0.3 | ✅ done | 2026-07-23 | date-fns installieren + Datum-Formatierung |
|
2026-07-23 05:11:16 +02:00
|
|
|
| 0.4 | ✅ done | 2026-07-23 | hooks.ts aufteilen — 1298 Zeilen → 12 Module + Re-Export-Hub |
|
2026-07-23 08:42:26 +02:00
|
|
|
| 0.5 | ✅ done | 2026-07-23 | calendarStore.ts nach store/ verschoben, stores/ entfernt |
|
|
|
|
|
| 0.6 | ✅ done | 2026-07-23 | frontend-gap-analysis.md gespeichert (176 Zeilen) |
|
|
|
|
|
| 0.7 | ✅ done | 2026-07-23 | UI-Design-Richtlinien erstellt (docs/ui-design-guidelines.md, 535 Zeilen) |
|
|
|
|
|
| 0.8 | ✅ done | 2026-07-23 | Theme-Customization Backend: 4 Felder (primary_color, accent_color, font_family, border_radius) zu model/schema/service, Migration 0023 | Theme-Customization Backend |
|
|
|
|
|
| 0.9 | ✅ done | 2026-07-23 | Theme-Customization Frontend: SettingsTheme.tsx, themeStore.ts, Route + Nav, i18n keys, Live-Preview, Dark-Mode-Toggle | Theme-Customization Frontend |
|
|
|
|
|
| 0.10 | ✅ done | 2026-07-23 | RBAC-Audit: 4 Plugins (calendar, dms, entity_links, tags) mit Permissions versehen, 53 Routes mit require_permission abgesichert | RBAC-Audit & Plugin-Permissions nachrüsten |
|
|
|
|
|
| 0.11 | ✅ done | 2026-07-23 | LiteLLM-Cleanup: llm_client.py von httpx auf litellm.acompletion migriert, AI_PROVIDER env var, System-Prompt companies→contacts | LiteLLM-Cleanup & alte llm_client.py migrieren |
|
|
|
|
|
| 0.12 | ✅ done | 2026-07-23 | KI-Agent-Framework: docs/plugin-development-guide.md (348 Zeilen), agent_capabilities Feld im PluginManifest | KI-Agent-Framework in Plugin-Richtlinien dokumentieren |
|
|
|
|
|
| 0.13 | ✅ done | 2026-07-23 | Heartbeat konfigurierbar: ProactiveSettings um heartbeat_enabled/interval/target_room erweitert, Migration 0024, Schema+Service+Routes, Frontend-UI, Jobs.py nutzt Settings | Heartbeat konfigurierbar machen |
|
|
|
|
|
| 0.14 | ✅ done | 2026-07-23 | Unified Search Field-Level RBAC: resolve_permissions + filter_fields_by_permission in search route, entity-to-module mapping | Unified Search: Field-Level RBAC nachrüsten |
|
|
|
|
|
| 0.15 | ✅ done | 2026-07-23 | Undo/History-System: EntityHistory model+service+routes, Migration 0025, contact_service Integration, HistoryViewer Komponente, ContactDetail Integration, i18n | Undo/History-System für CRUD-Operationen |
|
|
|
|
|
| 0.16 | ✅ done | 2026-07-23 | Storage Backend: app/core/storage.py (LocalStorage + S3Storage), DMS + Attachments + Mail auf Storage Backend umgestellt, minio zu requirements, S3 env vars | Storage Backend implementieren (S3-Support) |
|
|
|
|
|
| 0.17 | ✅ done | 2026-07-23 | Import/Export: unified Contact Fields (firstname, surname, email_1, phone_1, mobilephone, function), Company-Import als Contact type=company, Export mit unified Fields, Backward-compat für alte CSV-Spalten | Import/Export an unified Contact Model anpassen |
|
|
|
|
|
| 0.18 | ✅ done | 2026-07-23 | .gitignore: webui→frontend, python-jose entfernt, pyproject.toml Python 3.12, .env aus Git entfernt, dump.rdb+test.txt gelöscht, JWT-Vars aus .env.docker.example entfernt | .gitignore & Config-Cleanup |
|
|
|
|
|
| 0.19 | ✅ done | 2026-07-23 | Mail-Salt Security-Fix: per-account random salt (generate_salt), encrypt/decrypt mit salt_b64, backward-compat mit Legacy-Salt, Migration 0026 | Mail-Salt Security-Fix |
|
|
|
|
|
| 0.20 | ✅ done | 2026-07-23 | AGPL ersetzt: PyMuPDF→pypdf (BSD), OnlyOffice→Collabora (LGPL/MPL), requirements.txt, LICENSE (MIT), THIRD_PARTY_LICENSES.md | AGPL-Lizenzen durch pypdf + Collabora ersetzen |
|
2026-07-23 00:35:40 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-07-23 17:17:32 +02:00
|
|
|
## Phase 1C: Frontend — Unified Contact UI
|
|
|
|
|
|
|
|
|
|
| Task | Status | Datum | Notiz |
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
| 1.18 | ✅ done | 2026-07-23 | Contact-Detail-Route /contacts/:id mit React.lazy |
|
|
|
|
|
| 1.19 | ✅ done | 2026-07-23 | ContactList Type-Filter Toggle (Alle/Firmen/Personen) |
|
|
|
|
|
| 1.20 | ✅ done | 2026-07-23 | ContactDetail ContactPerson-Verwaltung (bereits vorhanden) |
|
|
|
|
|
| 1.21 | ✅ done | 2026-07-23 | ContactEditModal für beide Types (bereits vorhanden) |
|
|
|
|
|
| 1.22 | ✅ done | 2026-07-23 | Company-Hooks aus hooks.ts entfernt |
|
|
|
|
|
| 1.23 | ✅ done | 2026-07-23 | Frontend Type-Definitions aktualisiert (calendar, tags, search, mail, types) |
|
|
|
|
|
| 1.24 | ✅ done | 2026-07-23 | Dashboard.tsx aktualisiert (keine Änderung nötig) |
|
|
|
|
|
| 1.25 | ✅ done | 2026-07-23 | GlobalSearchResults.tsx aktualisiert |
|
|
|
|
|
| 1.26 | ✅ done | 2026-07-23 | ContactFolderTree in ContactList integriert (bereits vorhanden) |
|
|
|
|
|
| 1.27 | ✅ done | 2026-07-23 | React Hook Form + Zod in ContactEditModal |
|
|
|
|
|
| 1.28 | ✅ done | 2026-07-23 | Frontend-Tests aktualisiert, tsc --noEmit OK (nur pre-existing Dms-Fehler) |
|
|
|
|
|
|
|
|
|
|
**Phase 1C Gesamt: ✅ Complete**
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-07-23 00:35:40 +02:00
|
|
|
## Phase 1-7: Noch nicht gestartet
|
|
|
|
|
|
|
|
|
|
Siehe `MASTER-PLAN.md` für alle Tasks.
|
2026-07-23 17:17:32 +02:00
|
|
|
|
|
|
|
|
## Phase 2: Code-Splitting & Virtual Scrolling
|
|
|
|
|
|
|
|
|
|
| Task | Status | Datum | Notiz |
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
| 2.1 | ✅ done | 2026-07-23 | React.lazy + Suspense für 25 Pages, PageLoader Komponente |
|
|
|
|
|
| 2.2 | ✅ done | 2026-07-23 | @tanstack/react-virtual installiert |
|
|
|
|
|
| 2.3 | ✅ done | 2026-07-23 | DataGrid Virtual Scrolling (useVirtualizer, 53px rows, 10 overscan, auto-skip <50) |
|
|
|
|
|
| 2.4 | ✅ done | 2026-07-23 | MailList Virtual Scrolling (80px rows, 8 overscan, auto-skip <50) |
|
|
|
|
|
| 2.5 | ✅ done | 2026-07-23 | ContactList Virtual Scrolling (list/table/cards, dynamic row estimate) |
|
|
|
|
|
| 2.6 | ✅ done | 2026-07-23 | FileExplorer + FileGrid virtualisiert, AuditLog via DataGrid |
|
|
|
|
|
| 2.7 | ✅ done | 2026-07-23 | Manual chunks: react-vendor, tanstack, ui, i18n. Vite build OK (3212 modules, ~9s) |
|
|
|
|
|
|
|
|
|
|
**Phase 2 Gesamt: ✅ Complete (Commit a8331fb)**
|