My Sea sign-gate — Sprint 4b of My Sea roadmap — TDD
/gameboard/my-sea/ standalone page + /gameboard/ My Sea applet gated behind User.significator. When no sig is saved, render a Look!-formatted Brief-style line — "Look!—pick your sign before drawing the Sea." — w. BACK (.btn-cancel → /gameboard/) + FYI (.btn-info → /billboard/my-sign/) action buttons in `--terUser` ink ; gate is inline content (not portaled like .note-banner) — it IS the page content until a sig is picked, not a transient nudge ; applet partial mirrors the gate via `{% if not request.user.significator_id %}` w. a `.my-sea-sign-gate--applet` denser variant (just FYI, no BACK — user's already on the gameboard); .my-sea-sign-gate__line shrinks from 1.1rem → 0.85rem + padding from 1.5rem → 0.5rem ; my_sea view passes `user_has_sig = request.user.significator_id is not None` so the standalone template branches at server side (avoids a request.user template-context-processor dependency in the standalone page) ; .woodpecker/main.yaml routes test_game_my_sea.py to the test-FTs-non-room stage by default (FT doesn't yet touch the table hex — Sprint 5+ will bring the hex into my_sea via the same DRY .room-shell stack as my_sign, at which point the file gets moved to test-FTs-room) ; TDD trail — 6 FTs in test_game_my_sea.py covering standalone gate copy + FYI/BACK href targets (T1-T3), with-sig skips gate + renders draw shell (T4), applet mirrors gate w. FYI (T5), applet w. sig falls back to .my-sea-empty (T6); all written red against the un-implemented gate before view/template/SCSS landed ; KNOWN: visual verification on existing admin user (@disco) blocked by lack of a clear-sign affordance (he has a sig saved from Sprint 4a testing); adjacent feature spec'd in [[sprint_my_sea_sign_gate_may19]] memory — likely lands as a CLEAR btn in the picker's saved-sig stage state, deferred to next session
Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,17 @@
|
||||
>
|
||||
<h2><a href="{% url 'my_sea' %}">My Sea</a></h2>
|
||||
<div class="my-sea-scroll">
|
||||
{% if latest_draw_cards %}
|
||||
{% if not request.user.significator_id %}
|
||||
{# Sprint 4b applet-gate mirror — same Look!-formatted nudge as #}
|
||||
{# the standalone page so the UX is consistent across surfaces. #}
|
||||
<div class="my-sea-sign-gate my-sea-sign-gate--applet">
|
||||
<p class="my-sea-sign-gate__line">
|
||||
Look!—pick your sign before drawing the Sea.
|
||||
</p>
|
||||
<a class="btn btn-info my-sea-sign-gate__fyi"
|
||||
href="{% url 'billboard:my_sign' %}">FYI</a>
|
||||
</div>
|
||||
{% elif latest_draw_cards %}
|
||||
{% for card in latest_draw_cards %}
|
||||
<div class="my-sea-card" data-position="{{ card.position }}">
|
||||
<span class="fan-corner-rank">{{ card.corner_rank }}</span>
|
||||
|
||||
@@ -6,8 +6,27 @@
|
||||
|
||||
{% block content %}
|
||||
<div class="my-sea-page">
|
||||
{# Sprint 3 shell only — gatekeeper / sig-select / sea-select phases #}
|
||||
{# will land here in later sprints of the My Sea roadmap. #}
|
||||
<p class="my-sea-page__empty">No draws yet—the depths remain unfathomable.</p>
|
||||
{% if not user_has_sig %}
|
||||
{# Sprint 4b sign-gate. The draw UX is gated behind a saved #}
|
||||
{# significator — render a Look!-formatted Brief-style line w. #}
|
||||
{# FYI (→ /billboard/my-sign/) + BACK (→ /gameboard/) until the #}
|
||||
{# user picks a sign. Inline (not portaled like .note-banner) #}
|
||||
{# because the gate IS the page content, not a transient nudge. #}
|
||||
<div class="my-sea-sign-gate">
|
||||
<p class="my-sea-sign-gate__line">
|
||||
Look!—pick your sign before drawing the Sea.
|
||||
</p>
|
||||
<div class="my-sea-sign-gate__actions">
|
||||
<a class="btn btn-cancel my-sea-sign-gate__back"
|
||||
href="{% url 'gameboard' %}">BACK</a>
|
||||
<a class="btn btn-info my-sea-sign-gate__fyi"
|
||||
href="{% url 'billboard:my_sign' %}">FYI</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
{# Sprint 3 shell — gatekeeper / sig-select / sea-select phases #}
|
||||
{# will land here in later sprints of the My Sea roadmap. #}
|
||||
<p class="my-sea-page__empty">No draws yet—the depths remain unfathomable.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
Reference in New Issue
Block a user