my-sea spectator: render all present members on the hex (2C-6C), not just the viewer — TDD

The spectator hex showed only owner 1C + the viewer in 2C; other present
visitors were invisible. The view now builds a  list — owner 1C + each
present invitee in 2C-6C by deposit order (capped at MY_SEA_MAX_VISITORS) — so
every viewer sees the same absolute seating, with their own seat marked
.table-seat--self (a subtle --terUser tint).

- my_sea_visit:  context (present/empty + token + label + is_self).
- my_sea_visit.html: seat ring loops  instead of a hardcoded 1C/2C.
- _room.scss: .table-seat--self chair tint.
- +1 IT (3 present visitors → 2C-4C seated, viewer is the --self one); the
  both-seated IT updated for the --self marker. 292 gameboard ITs green.

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-29 22:01:23 -04:00
parent cb7ca4b5f3
commit 2cbc1bf292
4 changed files with 62 additions and 17 deletions

View File

@@ -38,25 +38,21 @@
</div>
</div>
</div>
{% for n in "123456" %}
{% if n == '1' and seat1_present %}
<div class="table-seat seated" data-slot="1"
data-seat-token="owner-{{ owner.id }}-{{ owner_draw_id }}">
{# Every present member shows on the ring — owner 1C + #}
{# present invitees 2C6C by deposit order (the viewer's #}
{# own seat carries `--self`). Built server-side as #}
{# `seats` so all viewers see identical absolute seating. #}
{% for seat in seats %}
{% if seat.present %}
<div class="table-seat seated{% if seat.is_self %} table-seat--self{% endif %}" data-slot="{{ seat.n }}" data-seat-token="{{ seat.token }}">
<i class="fa-solid fa-chair"></i>
<span class="seat-position-label">1C</span>
<i class="position-status-icon fa-solid fa-circle-check"></i>
</div>
{% elif n == '2' and seat2_present %}
<div class="table-seat seated" data-slot="2"
data-seat-token="visit-{{ sea_invite.id }}">
<i class="fa-solid fa-chair"></i>
<span class="seat-position-label">2C</span>
<span class="seat-position-label">{{ seat.label }}</span>
<i class="position-status-icon fa-solid fa-circle-check"></i>
</div>
{% else %}
<div class="table-seat" data-slot="{{ n }}">
<div class="table-seat" data-slot="{{ seat.n }}">
<i class="fa-solid fa-chair"></i>
<span class="seat-position-label">{{ n }}C</span>
<span class="seat-position-label">{{ seat.label }}</span>
<i class="position-status-icon fa-solid fa-ban"></i>
</div>
{% endif %}