The Add Payroll Adjustment modal now uses checkboxes in a scrollable
frame instead of a multi-select dropdown, making it easier to see
who is selected. Added a team filter dropdown that auto-selects all
workers in the chosen team. Users can still check/uncheck individual
workers after selecting a team. Shows live count of selected workers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Advance Payment type to payroll adjustments. Admins can give
workers partial advances against earned wages — each advance creates
a payslip sent to Spark immediately, while the remaining balance stays
on the dashboard. Multiple advances allowed. Final payment deducts
all advances automatically.
Also refactored type-grouping logic into ADDITIVE_TYPES/DEDUCTIVE_TYPES
constants (was duplicated 15 times across views).
Includes migration 0016 (choices-only, run: python manage.py migrate)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ability for admins to edit or delete unpaid payroll adjustments
directly from the payroll dashboard. Clickable adjustment badges open
edit/delete modals with type-specific handling (LOAN cascades, OVERTIME
un-pricing). No model changes or migrations needed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Dashboard: Outstanding Payments, Paid This Month, Active Loans cards
- Dashboard: This Week summary, Recent Activity, Quick Actions, Manage Resources
- Dashboard: Active/Inactive/All filter for resources
- Payroll: Preview payslip modal (no DB/email side effects)
- Payroll: Multi-select workers in adjustment modal
- History: Team column + direct team FK on WorkLog
- History: Shift+click multi-date selection on calendar
- Permissions: Replaced PIN system with Django groups (Admin, Work Logger)
- Permissions: Renamed Supervisor to Work Logger throughout
- Nav: Hide financial links (Payroll) from non-admin users
- Admin: Enhanced Django admin with group management
- New migrations: 0011 (remove pin/is_admin), 0012 (add team to WorkLog)
- New management command: setup_groups
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>