Beschreibung
Der aktuelle Paperless-NGX Sync ist nur einseitig (Paperless → Workmate). Ziel ist ein vollständig bidirektionaler Sync.
Was bereits funktioniert
- ✅ Paperless → Workmate: Neue Dokumente werden alle 30 Min importiert und per KI analysiert
- ✅ Nach KI-Analyse: Tags + Notizen werden einmalig nach Paperless zurückgeschrieben (
_write_to_paperless)
Was fehlt (Workmate → Paperless)
Metadaten-Sync
- ❌ Task-Status: Wenn ein Task in Workmate als erledigt markiert wird → Tag
erledigt / offen in Paperless setzen
- ❌ Korrigierter Dokumenttyp: Wenn der Nutzer den Typ in Workmate ändert → Paperless-Tag aktualisieren
- ❌ Geänderte Metadaten: Fälligkeitsdatum, Betrag, Titel — Änderungen in Workmate zurückschreiben
- ❌ Periodic Write-back:
paperless_sync Task soll nach dem Import-Durchlauf auch einen Write-back-Durchlauf für alle verknüpften Dokumente machen
Datei-Upload (Workmate → Paperless)
- ❌ Dokumente die direkt in Workmate hochgeladen werden, sollen automatisch auch in Paperless-NGX landen
- ❌ Paperless-ID nach erfolgreichem Upload im
doc_metadata speichern, damit spätere Syncs das Dokument korrekt verknüpfen
- ❌ Dateiname, KI-erkannter Typ und Tags direkt beim Upload mitschicken
Implementierungsplan
PaperlessSyncService.push_workmate_changes() — prüft alle Dokumente mit paperless_id, schreibt Änderungen zurück
PaperlessSyncService.upload_to_paperless(document_id) — lädt Originaldatei + Metadaten per Paperless Upload-API hoch
- In
document_processing.py: nach erfolgreicher Analyse upload_to_paperless als Celery-Task queuen (nur wenn Paperless konfiguriert)
paperless_sync Celery-Task um Write-back-Durchlauf erweitern
- Tracking via
doc_metadata["last_synced_to_paperless"] um nur tatsächlich geänderte Dokumente zu übertragen
Relevante Dateien
backend/app/services/paperless_service.py
backend/app/tasks/paperless_sync.py
backend/app/tasks/paperless_analyze.py
backend/app/tasks/document_processing.py
Beschreibung
Der aktuelle Paperless-NGX Sync ist nur einseitig (Paperless → Workmate). Ziel ist ein vollständig bidirektionaler Sync.
Was bereits funktioniert
_write_to_paperless)Was fehlt (Workmate → Paperless)
Metadaten-Sync
erledigt/offenin Paperless setzenpaperless_syncTask soll nach dem Import-Durchlauf auch einen Write-back-Durchlauf für alle verknüpften Dokumente machenDatei-Upload (Workmate → Paperless)
doc_metadataspeichern, damit spätere Syncs das Dokument korrekt verknüpfenImplementierungsplan
PaperlessSyncService.push_workmate_changes()— prüft alle Dokumente mitpaperless_id, schreibt Änderungen zurückPaperlessSyncService.upload_to_paperless(document_id)— lädt Originaldatei + Metadaten per Paperless Upload-API hochdocument_processing.py: nach erfolgreicher Analyseupload_to_paperlessals Celery-Task queuen (nur wenn Paperless konfiguriert)paperless_syncCelery-Task um Write-back-Durchlauf erweiterndoc_metadata["last_synced_to_paperless"]um nur tatsächlich geänderte Dokumente zu übertragenRelevante Dateien
backend/app/services/paperless_service.pybackend/app/tasks/paperless_sync.pybackend/app/tasks/paperless_analyze.pybackend/app/tasks/document_processing.py