feat: sync saved views and metadata entities to replicas
All checks were successful
Deploy / deploy (push) Successful in 34s

- Sync Tags, Correspondents, Document Types, Custom Fields via _ensure_schema_parity (already existed)
- Add saved views sync: create/update on replica with filter rule ID translation
- _FILTER_RULE_ENTITY_MAP translates entity-referencing rule types (correspondents, document types, tags, custom fields) to replica IDs
- Saved views sync is best-effort (non-fatal on failure)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-30 08:43:42 +02:00
parent 0ac43ac896
commit 6c2a905afe
2 changed files with 95 additions and 0 deletions

View File

@@ -195,6 +195,17 @@ class PaperlessClient:
)
return r.json()
async def get_saved_views(self) -> list[dict]:
return await self._get_all("/api/saved_views/")
async def create_saved_view(self, view_data: dict) -> dict:
r = await self._request("POST", "/api/saved_views/", json=view_data)
return r.json()
async def update_saved_view(self, view_id: int, view_data: dict) -> dict:
r = await self._request("PUT", f"/api/saved_views/{view_id}/", json=view_data)
return r.json()
async def test_connection(self) -> dict:
"""Returns {ok, error, latency_ms, doc_count}."""
t0 = time.monotonic()