User-created checklists: authoring, sharing, admin-promotion to global #61
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Trigger
m 2026-05-20 14:14:
Current state (verify in design)
paliad.checklists(the template catalog) +paliad.checklist_instances(per-Akte instances) exist; seeinternal/db/migrations/014_checklist_instances.up.sqlfor instance shape. Checklists today are pre-defined / global; users instantiate them on Akten / projects.can_seepredicate; no peer-to-peer template sharing.global_admincan edit any checklist; no project-scoped Admin yet (separate issue #48 covers project-Admin role).What m wants
1. User-authored checklists
global_admin) can create a checklist template they own — title, sections, items, completion semantics. Lives in the same table or a parallel personal-scoped one.2. Sharing
3. Admin promotion to global
global_admin(or a future paliad admin) can mark a personal checklist as global — promotes it into the firm-wide catalog where everyone sees it.Design considerations
owner_id uuid NULLtopaliad.checklists(NULL = legacy/global; non-NULL = user-authored).visibility textenum:private(author only) /shared(explicit recipients) /firm(entire firm) /global(firm catalog promoted by admin).paliad.checklist_shares(checklist_id, user_id|office_key|partner_unit_id|project_id, granted_by, granted_at).checklists_selectpolicy: row visible iff author=caller OR visibility='global'/'firm' OR row is in checklist_shares with caller's user/office/unit/project ancestry.global_adminon a shared checklist's detail pagechecklist_authored,checklist_shared,checklist_promoted_global,checklist_demoted.Slice plan (inventor sketch)
Out of scope
Role recommendation
inventor → coder — significant schema additions + RLS + multi-axis sharing + UI surfaces. Design pass before code. Branch:
mai/<inventor>/user-checklists.Slice A shipped via dirac; merged at https://mgit.msbls.de/m/paliad/commit/b418705. Personal authoring + private/firm visibility live after Dokploy deploy. Slices B (sharing) + C (gallery/versioning) follow.
Slice B shipped via dirac; merged at https://mgit.msbls.de/m/paliad/commit/b850eb7. Sharing + admin promotion live after Dokploy deploys. Slice C (gallery + versioning) remaining.
Slice C shipped via dirac; merged at https://mgit.msbls.de/m/paliad/commit/15ce176. m/paliad#61 complete (Slices A + B + C). Live after Dokploy deploys.