From de48ae226d7b1f639bdae2e446fd73d99222d0f6 Mon Sep 17 00:00:00 2001 From: Disco DeDisco Date: Tue, 19 May 2026 15:15:37 -0400 Subject: [PATCH] =?UTF-8?q?My=20Sea=20DRAW=20SEA=20landing=20=E2=80=94=20S?= =?UTF-8?q?print=205=20iter=201=20of=20My=20Sea=20roadmap=20=E2=80=94=20TD?= =?UTF-8?q?D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DRAW SEA landing UX on /gameboard/my-sea/ for users past the [[sprint-my-sea-sign-gate-may19]] gate. DRY table hex (reused from the room shell + my-sign Sprint 4a iter 3) w. 6 chair seats labeled 1C-6C (placeholder for friend-invite per the My Sea roadmap "Six chairs retained even in solo" anchor) + central DRAW SEA `.btn-primary` mirroring SCAN SIGN on /billboard/my-sign/. Click swaps `.my-sea-page[data-phase]` from `landing` to `picker`; the picker UX itself (three-card cross w. cover/leave/loom + form col / spread dropdown / decks / LOCK HAND / DEL) lands in iters 2 + 3. The 'C' suffix on the chair labels = "Chair" (user-locked); no role semantics (this is a solo draw, not a 6-player role assignment). `.table-seat` CSS class + `data-slot` attribute preserved so the room's existing `[data-slot="N"]` positioning rules (`_room.scss` L583-588) carry over for free — no SCSS fork; just a new `.seat-label` span inside each seat. The 'Default deck warning' Brief banner from /billboard/my-sign/ fires verbatim when `user.equipped_deck` is None (the user is headed for a draw against the Earthman [Shabby Cardstock] backup unless they equip one first). Tagged `.my-sea-intro-banner` so FTs disambiguate from other Briefs. Same FYI (→ /gameboard/) / NVM (dismiss) action grammar. Bundled: BACK→NVM label swap (user-edited mid-sprint) in the existing sign-gate. CSS class `.my-sea-sign-gate__back` retained — the swap was label-only — so existing FTs targeting the class still pass; docstrings + comments updated for accuracy. Files: - `apps/gameboard/views.py` — `my_sea` view adds 2 context keys: `no_equipped_deck` (bool) + `show_backup_intro_banner` (= user_has_sig AND no_equipped_deck). The sig-gate path still wins precedence. - `templates/apps/gameboard/my_sea.html` — `.my-sea-page[data-phase="landing"]`; new `.my-sea-landing` block w. room-shell hex + `#id_draw_sea_btn` + 6 `.table-seat[data-slot="N"]` w. `NC`; new `.my-sea-picker` placeholder (`display:none` til DRAW SEA click); inline ` + + + {# Brief 'Default deck warning' banner — lifted verbatim from #} + {# /billboard/my-sign/'s no-equipped-deck path. Same copy, #} + {# same FYI (→ /gameboard/) + NVM (dismiss + proceed) actions.#} + {# Tagged w. .my-sea-intro-banner so FTs disambiguate from #} + {# any other Briefs on the page. #} + + {% if show_backup_intro_banner %} + + {% endif %} {% endif %} {% endblock content %}