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:
@@ -118,7 +118,9 @@ var SigSelect = (function () {
|
|||||||
stageCard.querySelector('.fan-card-arcana').textContent = arcana;
|
stageCard.querySelector('.fan-card-arcana').textContent = arcana;
|
||||||
stageCard.querySelector('.fan-card-correspondence').textContent = ''; // shown in game-kit only
|
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;
|
var isMajor = arcana.toLowerCase().indexOf('major') !== -1;
|
||||||
// Major arcana: qualifier sits below the title — append comma so it reads as a subtitle.
|
// Major arcana: qualifier sits below the title — append comma so it reads as a subtitle.
|
||||||
stageCard.querySelector('.fan-card-name').textContent = isMajor ? title + ',' : title;
|
stageCard.querySelector('.fan-card-name').textContent = isMajor ? title + ',' : title;
|
||||||
|
|||||||
@@ -756,15 +756,11 @@ def sig_ready(request, room_id):
|
|||||||
reservation.ready = True
|
reservation.ready = True
|
||||||
reservation.save(update_fields=["ready"])
|
reservation.save(update_fields=["ready"])
|
||||||
card = reservation.card
|
card = reservation.card
|
||||||
if card and card.arcana == TarotCard.MIDDLE:
|
if card:
|
||||||
_pol_prefix = "Leavened" if reservation.polarity == SigReservation.LEVITY else "Graven"
|
_qual = card.levity_qualifier if reservation.polarity == SigReservation.LEVITY else card.gravity_qualifier
|
||||||
_card_display = f"{_pol_prefix} {card.name_title}"
|
_card_display = f"{_qual} {card.name_title}" if _qual else 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}"
|
|
||||||
else:
|
else:
|
||||||
_card_display = card.name_title if card else "a card"
|
_card_display = "a card"
|
||||||
record(room, GameEvent.SIG_READY, actor=request.user,
|
record(room, GameEvent.SIG_READY, actor=request.user,
|
||||||
card_name=_card_display,
|
card_name=_card_display,
|
||||||
corner_rank=card.corner_rank if card else "",
|
corner_rank=card.corner_rank if card else "",
|
||||||
|
|||||||
@@ -32,13 +32,11 @@
|
|||||||
<div class="sig-stage-card" style="--sig-card-w: 4rem">
|
<div class="sig-stage-card" style="--sig-card-w: 4rem">
|
||||||
{% if my_tray_sig %}
|
{% if my_tray_sig %}
|
||||||
<div class="fan-card-face">
|
<div class="fan-card-face">
|
||||||
{% if my_tray_sig.arcana == "MIDDLE" %}
|
{% if my_tray_sig.arcana == "MAJOR" %}
|
||||||
<p class="sig-qualifier-above">{% if user_polarity == "levity" %}Leavened{% else %}Graven{% endif %}</p>
|
|
||||||
<p class="fan-card-name">{{ my_tray_sig.name_title }}</p>
|
<p class="fan-card-name">{{ my_tray_sig.name_title }}</p>
|
||||||
{% elif my_tray_sig.arcana == "MAJOR" %}
|
<p class="sig-qualifier-below">{% if user_polarity == "levity" %}{{ my_tray_sig.levity_qualifier }}{% else %}{{ my_tray_sig.gravity_qualifier }}{% endif %}</p>
|
||||||
<p class="fan-card-name">{{ my_tray_sig.name_title }}</p>
|
|
||||||
<p class="sig-qualifier-below">{% if user_polarity == "levity" %}Leavened{% else %}Graven{% endif %}</p>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
<p class="sig-qualifier-above">{% if user_polarity == "levity" %}{{ my_tray_sig.levity_qualifier }}{% else %}{{ my_tray_sig.gravity_qualifier }}{% endif %}</p>
|
||||||
<p class="fan-card-name">{{ my_tray_sig.name_title }}</p>
|
<p class="fan-card-name">{{ my_tray_sig.name_title }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -72,7 +72,9 @@ Context: sig_cards, user_polarity, user_seat, sig_reserve_url, sig_reservations_
|
|||||||
data-correspondence="{{ card.correspondence|default:'' }}"
|
data-correspondence="{{ card.correspondence|default:'' }}"
|
||||||
data-keywords-upright="{{ card.keywords_upright|join:',' }}"
|
data-keywords-upright="{{ card.keywords_upright|join:',' }}"
|
||||||
data-keywords-reversed="{{ card.keywords_reversed|join:',' }}"
|
data-keywords-reversed="{{ card.keywords_reversed|join:',' }}"
|
||||||
data-cautions="{{ card.cautions_json }}">
|
data-cautions="{{ card.cautions_json }}"
|
||||||
|
data-levity-qualifier="{{ card.levity_qualifier }}"
|
||||||
|
data-gravity-qualifier="{{ card.gravity_qualifier }}">
|
||||||
<div class="fan-card-corner fan-card-corner--tl">
|
<div class="fan-card-corner fan-card-corner--tl">
|
||||||
<span class="fan-corner-rank">{{ card.corner_rank }}</span>
|
<span class="fan-corner-rank">{{ card.corner_rank }}</span>
|
||||||
{% if card.suit_icon %}<i class="fa-solid {{ card.suit_icon }}"></i>{% endif %}
|
{% if card.suit_icon %}<i class="fa-solid {{ card.suit_icon }}"></i>{% endif %}
|
||||||
|
|||||||
Reference in New Issue
Block a user