fix: timer.tick доходит до пульта ДДС

This commit is contained in:
gglamer 2026-09-26 19:53:45 +00:00
commit 83b7f8ffdd
3 changed files with 52 additions and 2 deletions

View file

@ -337,7 +337,9 @@ async def _handle(session_id: UUID, state, event) -> None:
# первого своего действия: отмечаться ему по нему же (lct-33).
hub.to_station(session_id, StationState(snapshot=state.station_snapshot()))
hub.to_observers(session_id, KioState(kio=state.kio))
hub.to_observers(session_id, TimerTick(timers=state.timers.snapshot()))
tick = TimerTick(timers=state.timers.snapshot())
hub.to_observers(session_id, tick)
hub.to_station(session_id, tick)
case "call.resolve":
# Курсант закрывает вызов не карточкой. Отдельное действие, а не

View file

@ -328,7 +328,11 @@ class SessionHub:
# Keep the pending count and countdown live even while
# the active dispatcher card is being handled.
self.to_station(session_id, StationState(snapshot=state.station_snapshot()))
self.broadcast(session_id, TimerTick(timers=state.timers.snapshot()))
tick = TimerTick(timers=state.timers.snapshot())
self.broadcast(session_id, tick)
# Срок первичного решения пульт берёт отсюда: после передачи
# из 112 без очереди ДДС лимит преподавателя больше нигде не виден.
self.to_station(session_id, tick)
except asyncio.CancelledError:
raise