Final whole-impl review on bce2619 caught two user-facing surfaces
still showing DB values instead of display labels:
1. By-Type group headers - _group_adjustments() used adj.type as
both the visible label AND the CSS data-type attribute. Split
into group.label (short display, for visible text) and
group.type_key (raw DB value, for the [data-type="X"] CSS
border-left selector).
2. Type filter popover checkboxes - adj_type_choices was a flat
list of DB values, so checkbox labels read "New Loan" /
"Advance Payment" / "Advance Repayment". Replaced with
PayrollAdjustment.TYPE_CHOICES (already a (db_value,
display_label) tuple list), and updated the template loop to
unpack both - label in <span>, DB value in the input value=.
Both surfaces now show Loan / Advance / Advance Repaid while
preserving the canonical DB values for CSS selectors + filter
form submissions.
Tests: 69/69.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>