Remove the level input from the boss defeat modal since the app doesn't track levels elsewhere. Team selection is now just checkboxes without requiring level entry. - Remove level input UI from BossDefeatModal.tsx - Add alembic migration to make boss_result_team.level nullable - Update model and schemas to make level optional (defaults to null) - Conditionally render level in boss result display Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
title, status, type, priority, created_at, updated_at
| title | status | type | priority | created_at | updated_at |
|---|---|---|---|---|---|
| UX: Make level field optional in boss defeat modal | completed | feature | normal | 2026-03-21T21:50:48Z | 2026-03-22T09:16:12Z |
Problem
When recording which team members beat a boss, users must manually enter a level for each pokemon. Since the app does not track levels anywhere else, this is unnecessary friction with no payoff.
Current Implementation
- Level input in
BossDefeatModal.tsx:200-211 - DB column
boss_result_team.levelisSmallInteger NOT NULL(inmodels.py) - Level is required in the API schema
Proposed Solution
Remove the level field entirely from the UI and make it optional in the backend:
- Remove level input from
BossDefeatModal.tsx - Make
levelcolumn nullable in the database (alembic migration) - Update the API schema to make level optional (default to null)
- Update any backend validation that requires level
- Verify boss result display still works without level data
Summary of Changes
- Removed level input field from BossDefeatModal.tsx, simplifying team selection to just checkboxes
- Created alembic migration to make boss_result_team.level column nullable
- Updated SQLAlchemy model and Pydantic schemas to make level optional (defaults to null)
- Updated RunEncounters.tsx to conditionally render level only when present
- Updated frontend TypeScript types for BossResultTeamMember and BossResultTeamMemberInput