SIG SELECT: read qualifiers from model fields; drop hardcoded Leavened/Graven

- _sig_select_overlay.html: add data-levity-qualifier + data-gravity-qualifier
  to sig card elements so JS can read per-card values
- sig-select.js: derive qualifier from cardEl.dataset instead of hardcoded string
- _sea_overlay.html: use my_tray_sig.levity_qualifier / gravity_qualifier;
  collapse MIDDLE/MAJOR/else branches → MAJOR vs rest (all non-major show
  qualifier above name; empty qualifier renders empty <p>)
- views.py: SIG READY event display uses card qualifier fields directly;
  removes separate MIDDLE / MAJOR / else branches

Earthman courts now show Elevated/Graven; pips show Relieving/Grieving;
Nomad and Popes show Enlightened/Engraven.

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:
Disco DeDisco
2026-04-27 22:33:42 -04:00
parent e6e2bd10c5
commit 42be0c63dc
4 changed files with 13 additions and 15 deletions

View File

@@ -118,7 +118,9 @@ var SigSelect = (function () {
stageCard.querySelector('.fan-card-arcana').textContent = arcana;
stageCard.querySelector('.fan-card-correspondence').textContent = ''; // shown in game-kit only
var qualifier = userPolarity === 'levity' ? 'Leavened' : 'Graven';
var qualifier = userPolarity === 'levity'
? (cardEl.dataset.levityQualifier || '')
: (cardEl.dataset.gravityQualifier || '');
var isMajor = arcana.toLowerCase().indexOf('major') !== -1;
// Major arcana: qualifier sits below the title — append comma so it reads as a subtitle.
stageCard.querySelector('.fan-card-name').textContent = isMajor ? title + ',' : title;

View File

@@ -756,15 +756,11 @@ def sig_ready(request, room_id):
reservation.ready = True
reservation.save(update_fields=["ready"])
card = reservation.card
if card and card.arcana == TarotCard.MIDDLE:
_pol_prefix = "Leavened" if reservation.polarity == SigReservation.LEVITY else "Graven"
_card_display = f"{_pol_prefix} {card.name_title}"
elif card and card.arcana == TarotCard.MAJOR:
_base = card.name_title.removeprefix("The ")
_pol_suffix = "of Light" if reservation.polarity == SigReservation.LEVITY else "from the Grave"
_card_display = f"{_base} {_pol_suffix}"
if card:
_qual = card.levity_qualifier if reservation.polarity == SigReservation.LEVITY else card.gravity_qualifier
_card_display = f"{_qual} {card.name_title}" if _qual else card.name_title
else:
_card_display = card.name_title if card else "a card"
_card_display = "a card"
record(room, GameEvent.SIG_READY, actor=request.user,
card_name=_card_display,
corner_rank=card.corner_rank if card else "",