70 lines
5.3 KiB
Plaintext
70 lines
5.3 KiB
Plaintext
BUILD187 — 2026.10.02.7
|
||
Буллиты: следующая серия и SQL для шести картинок
|
||
|
||
Устанавливается поверх BUILD186 (2026.10.02.6).
|
||
В архиве только изменённые файлы приложения, SQL и эта инструкция:
|
||
app.py
|
||
ui_builder/static/app.js
|
||
ui_builder/static/styles.css
|
||
hockey_data/service.py
|
||
shootout_3_home_3_away.sql
|
||
|
||
Установка
|
||
1. Остановите сервер.
|
||
2. Замените четыре файла приложения, сохранив пути внутри проекта.
|
||
3. Запустите сервер и обновите браузер через Ctrl+F5.
|
||
Версия /api/health: 2026.10.02.7.
|
||
Миграция базы не нужна. Agent менять не требуется.
|
||
|
||
Вкладка «Буллиты»
|
||
Кнопка «Следующая серия» теперь видна постоянно. Под ней показано, что она
|
||
добавляет по одному буллиту каждой команде. Кнопка доступна оператору после
|
||
завершения текущей серии обеими командами при равном счёте. Иначе рядом показана
|
||
причина, почему следующую серию пока нельзя открыть.
|
||
Отображается основная серия или номер дополнительной серии.
|
||
Повторные нажатия во время запроса не добавляют несколько раундов.
|
||
Основная серия на 3 или 5 буллитов продолжает работать.
|
||
|
||
SQL
|
||
Содержимое shootout_3_home_3_away.sql вставьте в SQL-источник Mapping.
|
||
Для этого титра с тремя ячейками каждой команды выберите основную серию на 3 буллита.
|
||
Единственная переменная запроса — :game_id, внешний идентификатор выбранного матча.
|
||
|
||
Связи с шестью Image/Source полями титра:
|
||
pic1 — хозяева, первая ячейка
|
||
pic2 — хозяева, вторая ячейка
|
||
pic3 — хозяева, третья ячейка
|
||
pic4 — гости, первая ячейка
|
||
pic5 — гости, вторая ячейка
|
||
pic6 — гости, третья ячейка
|
||
|
||
Забил (scored = TRUE) → Green-01.png.
|
||
Не забил (scored = FALSE) → Red-01.png.
|
||
Попытка ещё не выполнена → Line-01.png.
|
||
scored — логическое поле базы, а не строки «Да»/«Нет».
|
||
|
||
Основная серия заполняет три ячейки каждой команды по порядку.
|
||
При нажатии «Следующая серия» текущая серия в базе меняется сразу, до первого
|
||
нового броска. SQL возвращает Line-01.png для всех шести ячеек.
|
||
Новые дополнительные броски заполняют только pic1 (хозяева) и pic4 (гости).
|
||
pic2, pic3, pic5, pic6 в дополнительных сериях всегда Line-01.png.
|
||
Следующая дополнительная серия снова очищает pic1/pic4 до нового результата.
|
||
Полный журнал прошлых бросков остаётся в базе и во вкладке «Буллиты».
|
||
SQL возвращает одну строку с шестью полями даже без выполненных попыток,
|
||
поэтому старые картинки не сохраняются из-за пустого результата запроса.
|
||
|
||
SQL обновляет плашки при выполнении источника Mapping. Для автоматической смены
|
||
картинок после регистрации броска включите автообновление именно этого SQL-источника.
|
||
При отключённом автообновлении выполните Mapping или вызовите настроенный титр
|
||
кнопкой, которая обновляет его данные перед выдачей.
|
||
|
||
Удаление попытки
|
||
Исправлена нумерация оставшегося журнала после удаления ранней попытки:
|
||
номера команды и серии пересчитываются, следующий бросок не занимает уже занятое
|
||
место. Уже открытая дополнительная серия сохраняется.
|
||
|
||
Проверки выполнялись на изолированной тестовой базе и в браузере с имитацией API.
|
||
Проверены пустой титр, гол/промах, порядок хозяева/гости, дополнительные серии,
|
||
удаление и повторная запись попыток, режимы 3/5, ограничения кнопки и повторные клики.
|
||
Доступ к рабочей базе и реальному vMix при подготовке не использовался.
|