Konrad du Plessis 541b8973c7 perf: kill per-row queries on the History tab and Batch Pay preview
- paid_records (History tab) now prefetches work_logs + adjustments:
  the template shows a day-count and loops adjustments per row, which
  fired 2 queries per visible record (~100 on a long history).
- batch_pay_preview replaces the per-worker get_worker_active_team()
  call (worker.teams.filter(...).first() — bypasses prefetch, 1 query
  per worker) with the same batched membership-dict pattern
  payroll_dashboard already uses, and reads the unpaid-adjustments
  check from the existing filtered prefetch instead of .exists().

Also includes (committed earlier in 25910b2 but noting for the record):
the /report/ worker-breakdown loop's per-worker-per-type aggregates
were replaced by one GROUP BY dict (audit fix #7).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 17:58:56 +02:00
..
2026-02-22 12:14:54 +00:00
2026-04-22 00:19:15 +02:00