diff --git a/CLAUDE.md b/CLAUDE.md index 4222f66..5d349ad 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -262,6 +262,13 @@ mirrors `is_advance`/`is_loan` across `pdf/payslip_pdf.html`, `email/payslip_email.html`, `core/payslip.html`. `--badge-salary-*` CSS (dark+light) + `.badge-type-salary`. +**Finding managers:** `/workers/?pay_type=fixed` (display-only filter, +mirrors the status/team filters) + a "Managers only" client-side +toggle on the Add-Adjustment modal picker. Both display-only — the +modal's `all_workers` queryset is NOT narrowed server-side (preserves +the must-stay-payable invariant). DB value `fixed`/`daily` (Path-A); +labels "Managers (Salaried)" / "Daily workers". + ## Payroll Constants Defined at top of views.py — used in dashboard calculations and payment processing: - **ADDITIVE_TYPES** = `['Bonus', 'Overtime', 'New Loan', 'Advance Payment', 'Salary']` — increase worker's net pay diff --git a/docs/plans/parked-work.md b/docs/plans/parked-work.md index 097b3d0..b9e4874 100644 --- a/docs/plans/parked-work.md +++ b/docs/plans/parked-work.md @@ -73,6 +73,15 @@ explicit approval does anything get pushed to `origin/ai-dev`. No code changes pending — implementation is complete; this is purely a human verify-then-approve gate. +Now also includes a display-only pay-type filter (design +`docs/plans/2026-05-16-managers-paytype-filter-design.md`, plan +`docs/plans/2026-05-16-managers-paytype-filter-plan.md`): a +`/workers/?pay_type=fixed` filter + dropdown and a "Managers only" +client-side toggle on the Add-Adjustment modal picker. Same HARD +STOP — all of it is un-pushed until Konrad's local verification; +it ships bundled with the rest of the paused Manager/Salaried work +in one push, his call. + #### Follow-ups from code review (parked, out of scope for this feature) 1. **Atomicity hardening (cross-cutting, pre-existing).**