Skip to content

Extract rota display into reusable partials#214

Open
peterdrier wants to merge 1 commit intomainfrom
sprint/2026-04-10/batch-10
Open

Extract rota display into reusable partials#214
peterdrier wants to merge 1 commit intomainfrom
sprint/2026-04-10/batch-10

Conversation

@peterdrier
Copy link
Copy Markdown
Owner

Summary

  • Extract inline rota rendering from Views/Shifts/Index.cshtml into three shared partials: _RotaHeader.cshtml (name, badges, tags, description), _BuildStrikeRotaTable.cshtml (all-day shift table with collapsible date ranges and range signup), and _EventRotaTable.cshtml (timed shift table with individual signup)
  • Add typed view models (RotaHeaderViewModel, BuildStrikeRotaTableViewModel, EventRotaTableViewModel) for clean partial contracts
  • Reduce volunteer browse view from 586 to 259 lines with no visual or behavioral changes

Issues

Test plan

  • Browse /Shifts — verify rota headers display correctly (name, priority badges, period badges, tags, visibility, description, practical info)
  • Verify build/strike rotas show all-day shift table with collapsible date ranges
  • Verify event rotas show timed shift table with signup buttons
  • Test range signup form on build/strike rotas
  • Test individual signup on event rotas
  • Verify date range expand/collapse still works (chevron toggle)
  • Verify Signed up / Full / Needs help badges display correctly
  • Confirm no visual differences from before the refactor

Extract inline rota rendering from Shifts/Index.cshtml into three shared
partials: _RotaHeader (name, badges, tags, description), _BuildStrikeRotaTable
(all-day shift table with collapsible date ranges and range signup), and
_EventRotaTable (timed shift table with individual signup). Reduces the
volunteer browse view from 586 to 259 lines with no visual or behavioral
changes.

Closes #198

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant