SIG SELECT: Nomad/Schizo locked by default; Note-unlock gate — TDD

- _filter_major_unlocks(cards, user): strips Major 0 (Nomad) and Major 1
  (Schizo) unless user has matching 'nomad'/'schizo' Note; unauthenticated
  users see 0 majors
- levity_sig_cards(room, user) / gravity_sig_cards(room, user): accept user
  param; default 16 court cards, up to 18 with both Note unlocks
- View wires user into both calls; _sig_unique_cards / sig_deck_cards unchanged
  (game-table deck still includes all 18 unique)
- _full_sig_setUp: seats now carry deck_variant=earthman
- SigCardHelperTest: 4 new ITs (default 16, nomad +1, schizo +1); empty-deck
  test updated to clear seats + owner
- SigSelectRenderingTest: 18-card test updated to 16-default + 3 Note-unlock ITs

Pending: superusers auto-granted nomad + schizo Notes on creation (ask user)

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-28 01:05:25 -04:00
parent eaff2a1edb
commit 1c2b8f96ab
4 changed files with 77 additions and 25 deletions

View File

@@ -338,9 +338,9 @@ def _role_select_context(room, user):
ctx["sig_reservations_json"] = json.dumps(reservations)
if user_polarity == 'levity':
ctx["sig_cards"] = levity_sig_cards(room)
ctx["sig_cards"] = levity_sig_cards(room, user)
elif user_polarity == 'gravity':
ctx["sig_cards"] = gravity_sig_cards(room)
ctx["sig_cards"] = gravity_sig_cards(room, user)
else:
ctx["sig_cards"] = []