new DRAMA & BILLBOARD apps to start provenance system; new billboard.html & _scroll.html templates; admin area now displays game event log; new CLAUDE.md file to free up Claude Code's memory.md space; minor additions to apps.epic.views to ensure new systems just described adhere to existing game views
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -7,6 +7,7 @@ from django.http import HttpResponse
|
||||
from django.shortcuts import redirect, render
|
||||
from django.utils import timezone
|
||||
|
||||
from apps.drama.models import GameEvent, record
|
||||
from apps.epic.models import GateSlot, Room, RoomInvite, TableSeat, debit_token, select_token
|
||||
from apps.lyric.models import Token
|
||||
|
||||
@@ -261,6 +262,10 @@ def confirm_token(request, room_id):
|
||||
if int(slot_number) > carte.slots_claimed:
|
||||
carte.slots_claimed = int(slot_number)
|
||||
carte.save()
|
||||
record(room, GameEvent.SLOT_FILLED, actor=request.user,
|
||||
slot_number=int(slot_number), token_type=Token.CARTE,
|
||||
token_display=carte.get_token_type_display(),
|
||||
renewal_days=(room.renewal_period.days if room.renewal_period else 7))
|
||||
_notify_gate_update(room_id)
|
||||
else:
|
||||
slot = room.gate_slots.filter(
|
||||
@@ -275,6 +280,10 @@ def confirm_token(request, room_id):
|
||||
token = select_token(request.user)
|
||||
if token:
|
||||
debit_token(request.user, slot, token)
|
||||
record(room, GameEvent.SLOT_FILLED, actor=request.user,
|
||||
slot_number=slot.slot_number, token_type=token.token_type,
|
||||
token_display=token.get_token_type_display(),
|
||||
renewal_days=(room.renewal_period.days if room.renewal_period else 7))
|
||||
_notify_gate_update(room_id)
|
||||
return redirect("epic:gatekeeper", room_id=room_id)
|
||||
|
||||
@@ -378,11 +387,15 @@ def select_role(request, room_id):
|
||||
return HttpResponse(status=409)
|
||||
active_seat.role = role
|
||||
active_seat.save()
|
||||
record(room, GameEvent.ROLE_SELECTED, actor=request.user,
|
||||
role=role, slot_number=active_seat.slot_number,
|
||||
role_display=dict(TableSeat.ROLE_CHOICES).get(role, role))
|
||||
if room.table_seats.filter(role__isnull=True).exists():
|
||||
_notify_turn_changed(room_id)
|
||||
else:
|
||||
room.table_status = Room.SIG_SELECT
|
||||
room.save()
|
||||
record(room, GameEvent.ROLES_REVEALED)
|
||||
_notify_roles_revealed(room_id)
|
||||
return HttpResponse(status=200)
|
||||
return redirect("epic:gatekeeper", room_id=room_id)
|
||||
|
||||
Reference in New Issue
Block a user