# Многодневные соревнования и финалы Подробное руководство по настройке и проведению многодневных соревнований с финальными заданиями и системой tiebreaker (разрешения ничьих). ## 📋 Введение Платформа ИКОН поддерживает проведение соревнований продолжительностью от 1 до 3 дней с возможностью автоматического отбора лучших участников в финал. Система также использует время выполнения комплексов для разрешения ситуаций с одинаковыми баллами (tiebreaker). ```{note} Многодневные соревнования особенно популярны для крупных турниров, где участники проходят квалификацию в течение 1-2 дней, после чего топ-10 спортсменов выходят в финал. ``` ## 🎯 Основные возможности ### Что нового появилось: ✅ **Многодневные соревнования** - разделение WOD по дням (1, 2 или 3 дня) ✅ **Финальные задания** - автоматический отбор топ-N участников по сумме баллов ✅ **Tiebreaker через время** - разрешение ничьих по времени выполнения ✅ **Защита результатов** - предотвращение случайного удаления заходов с результатами ✅ **Группировка по дням** - удобное отображение заходов с разбивкой по дням --- ## 📅 Часть 1: Многодневные соревнования ### Настройка многодневного соревнования #### Шаг 1: Создайте WOD для каждого дня 1. Откройте раздел **"WOD (Задания)"** в личном кабинете организатора 2. Нажмите кнопку **"Создать WOD"** 3. Заполните основную информацию о задании 4. В разделе **"Организация соревнования"** укажите: - **День соревнования**: 1, 2 или 3 - **Тип задания**: Квалификация или Финал - **Количество финалистов**: обычно 10 (для финалов) ```{tip} **Рекомендуемая структура для 3-дневного соревнования:** - **День 1**: WOD 1, WOD 2 (Квалификация) - **День 2**: WOD 3, WOD 4 (Квалификация) - **День 3**: WOD 5 (Квалификация), WOD Final (Финал) ``` #### Пример настройки WOD **Квалификационный WOD (День 1):** ``` Название: WOD 1 - Фрэн День соревнования: 1 Тип задания: Квалификация Категория: RX Men / RX Women ``` **Финальный WOD (День 3):** ``` Название: WOD Final - Чемпионский комплекс День соревнования: 3 Тип задания: Финал Количество финалистов: 10 Категория: RX Men / RX Women ``` --- ### Генерация стартовых листов (заходов) После создания всех WOD необходимо сгенерировать стартовые листы (заходы). #### Шаг 1: Перейдите в раздел "Стартовые листы" 1. В меню организатора выберите **"Стартовые листы"** 2. Нажмите **"Генерировать"** #### Шаг 2: Настройте параметры генерации ```{important} **Обязательно включите опцию:** ☑️ **Защитить заходы с результатами** (рекомендуется) Эта опция предотвратит случайное удаление заходов, в которых уже есть результаты участников. ``` **Параметры генерации:** - **Время начала**: Например, 09:00 - **Участников в заходе**: 10 (по умолчанию) - **Буфер (мин)**: 8 минут между заходами - **Перерыв WOD (мин)**: 30 минут между разными WOD - **Разделять по полу**: ☑️ (рекомендуется) - **Защитить заходы с результатами**: ☑️ (рекомендуется) #### Что произойдет: **Для квалификационных WOD:** - Система создаст заходы для **всех зарегистрированных участников** - Участники будут распределены по категориям и полу - Максимум 10 человек в одном заходе **Для финальных WOD:** - Система автоматически отберет **топ-10 участников по полу** на основе суммы баллов за все предыдущие квалификационные WOD - Будет создан **один заход для всех 10 финалистов** в каждой категории/поле - Участники сортируются по: сумма баллов (DESC) → дата регистрации (ASC) --- ### Отображение заходов по дням После генерации заходы будут сгруппированы по дням: ``` 📅 День 1 ├─ WOD 1 - Фрэн (12 заходов) └─ WOD 2 - Хелен (12 заходов) 📅 День 2 ├─ WOD 3 - AMRAP (12 заходов) └─ WOD 4 - Max Weight (12 заходов) 📅 День 3 ├─ WOD 5 - Квалификация (12 заходов) └─ WOD Final - 🔴 ФИНАЛ (2 захода) ``` ```{note} Финальные WOD отмечены красным значком **ФИНАЛ** для удобства навигации. ``` --- ### Защита результатов от удаления #### Как это работает: 1. Если в заходах уже есть внесенные результаты, система покажет **предупреждение**: ```{warning} **Внимание!** В 24 заходах уже есть результаты. Включите защиту результатов, чтобы не потерять данные при повторной генерации. ``` 2. При попытке генерации заходов с включенной защитой система **НЕ УДАЛИТ** заходы с результатами и покажет ошибку: ``` Найдено 24 заходов с результатами. Удаление невозможно. Отключите защиту результатов или удалите заходы вручную. ``` #### Когда отключать защиту: ⚠️ **Отключайте защиту только если:** - Вы абсолютно уверены, что хотите удалить все результаты - Необходимо полностью перегенерировать заходы с изменениями - Проводите тестовое соревнование ```{danger} **ВНИМАНИЕ!** Отключение защиты и повторная генерация **НЕОБРАТИМО УДАЛИТ** все результаты участников! ``` --- ## ⏱️ Часть 2: Tiebreaker через время выполнения ### Зачем нужно время выполнения? **Проблема:** Два участника набрали одинаковое количество баллов. Кто победил? **Решение:** Тот, кто выполнил комплексы быстрее! ### Примеры ситуаций #### Пример 1: AMRAP с равными результатами **Ситуация:** - Атлет A: 150 повторений = 98 баллов - Атлет B: 150 повторений = 98 баллов - Атлет C: 150 повторений = 98 баллов **Как определяется победитель:** Система смотрит на **время выполнения**: - Атлет C: выполнил за **12:30** → 1 место (быстрее всех) - Атлет A: выполнил за **12:45** → 2 место - Атлет B: выполнил за **13:20** → 3 место #### Пример 2: Итоговый лидерборд После всех WOD система сортирует атлетов по: 1. **Сумма баллов** (больше = лучше) 2. **Лучшее время выполнения** среди всех WOD (меньше = лучше) 3. **Дата регистрации** (раньше = лучше) --- ### Типы WOD и время выполнения #### Таблица автозаполнения | Тип WOD | Время выполнения обязательно? | Автозаполнение | Примечание | |---------|-------------------------------|----------------|------------| | **For Time** | Нет | ✅ Да, автоматически из результата | Время = результат | | **AMRAP** | ✅ Да | ❌ Нет, вводится вручную | Фактическое время выполнения | | **Max Weight** | ✅ Да | ❌ Нет, вводится вручную | За какое время поднят вес | | **Max Distance** | ✅ Да | ❌ Нет, вводится вручную | Время выполнения дистанции | | **Max Tonnage** | ✅ Да | ❌ Нет, вводится вручную | Время набора тоннажа | --- ### Ввод результатов с временем выполнения #### Для For Time WOD (автоматически) 1. Откройте раздел **"Результаты"** 2. Выберите WOD типа **For Time** 3. Нажмите **"Ввести"** или **"Изменить"** для участника 4. Введите результат: `12:45` 5. Поле **"Время выполнения"** заполнится автоматически: `12:45` 6. Нажмите **"Сохранить"** ```{tip} Для For Time WOD время выполнения всегда равно результату, поэтому система заполняет его автоматически. ``` #### Для AMRAP/Weight/Distance (вручную) 1. Откройте раздел **"Результаты"** 2. Выберите WOD типа **AMRAP** (или другой) 3. Нажмите **"Ввести"** для участника 4. Введите результат: `150` (количество повторений) 5. **ОБЯЗАТЕЛЬНО** введите время выполнения: `12:45` 6. Нажмите **"Сохранить"** ```{important} Для AMRAP, Max Weight, Max Distance и Max Tonnage поле **"Время выполнения"** обязательно для заполнения! ``` #### Формат времени **Поддерживаемые форматы:** ``` 12:45 # 12 минут 45 секунд (рекомендуется) 5:32 # 5 минут 32 секунды 05:32 # то же что 5:32 (с нулём) 12.45 # система преобразует в 12:45 12,45 # система преобразует в 12:45 ``` **Неверные форматы:** ``` 12:5 # ❌ Секунды должны быть двузначными (12:05) 125 # ❌ Используйте : для разделения (01:25) 1h 25m # ❌ Только формат MM:SS ``` --- ### Отображение времени в лидерборде После ввода результатов с временем выполнения, в лидерборде будет отображаться: ``` ┌───┬──────────────┬─────────┬──────────────┬────────┐ │ # │ Атлет │ WOD 1 │ WOD 2 │ Баллы │ ├───┼──────────────┼─────────┼──────────────┼────────┤ │ 1 │ Иван Петров │ 02:35 │ 150 │ 198 │ │ │ │ 100 pts │ ⏱️ 12:30 │ │ │ │ │ │ 98 pts │ │ ├───┼──────────────┼─────────┼──────────────┼────────┤ │ 2 │ Петр Сидоров │ 02:40 │ 150 │ 196 │ │ │ │ 98 pts │ ⏱️ 12:45 │ │ │ │ │ │ 98 pts │ │ └───┴──────────────┴─────────┴──────────────┴────────┘ ``` ```{note} Время выполнения отображается с иконкой ⏱️ под результатом для AMRAP/Weight/Distance WOD. ``` --- ## 🔧 Миграция старых данных Если у вас уже есть результаты в системе до обновления, используйте management команду для автоматической миграции данных. ### Использование команды #### 1. Проверка (без изменений) ```bash python manage.py migrate_completion_times --dry-run ``` **Результат:** ``` === РЕЖИМ ПРОВЕРКИ (изменения не будут сохранены) === Найдено 342 результатов For Time без completion_time ✓ Будет обновлено 342 результатов For Time ⚠ Найдено 156 результатов AMRAP/Weight/Distance без completion_time Для этих результатов требуется ручное заполнение completion_time организаторами. Примеры результатов без completion_time: - Иван Петров | Чемпионат 2024 | WOD 2 | 150 | Тип: AMRAP - ... === СТАТИСТИКА === Всего результатов: 498 С заполненным completion_time: 0 (0.0%) Без completion_time: 498 💡 Запустите команду без --dry-run для применения изменений ``` #### 2. Применение изменений ```bash python manage.py migrate_completion_times ``` **Результат:** ``` Найдено 342 результатов For Time без completion_time Обработано: 100... Обработано: 200... Обработано: 300... ✓ Обновлено 342 результатов For Time ⚠ Найдено 156 результатов AMRAP/Weight/Distance без completion_time ... ``` ```{warning} Команда автоматически заполняет время только для **For Time** результатов. Для AMRAP/Weight/Distance требуется ручной ввод организаторами. ``` --- ## 📊 Влияние на лидерборд ### Принцип работы tiebreaker **Сортировка атлетов происходит по 3 критериям:** 1. **Сумма баллов** (больше = лучше) 2. **Лучшее время выполнения** среди всех WOD атлета (меньше = лучше) 3. **Дата регистрации** на соревнование (раньше = лучше) ### Пример После 5 WOD в соревновании: ``` Атлет A: - Сумма баллов: 485 - Лучшее время: 05:32 (WOD 1) - Регистрация: 01.09.2024 Атлет B: - Сумма баллов: 485 - Лучшее время: 05:45 (WOD 2) - Регистрация: 28.08.2024 Атлет C: - Сумма баллов: 485 - Лучшее время: 05:20 (WOD 3) - Регистрация: 05.09.2024 ``` **Итоговый порядок:** 1. **Атлет C** - 485 баллов, лучшее время 05:20 ⚡ 2. **Атлет A** - 485 баллов, лучшее время 05:32 3. **Атлет B** - 485 баллов, лучшее время 05:45 ```{note} Атлет C победил благодаря лучшему времени выполнения, несмотря на более позднюю регистрацию. ``` --- ## ❓ Часто задаваемые вопросы ### Q: Можно ли изменить количество финалистов? **A:** Да, при создании финального WOD укажите нужное количество в поле **"Количество финалистов"**. По умолчанию: 10. ### Q: Что если в категории меньше участников чем мест в финале? **A:** Система отберет всех доступных участников. Например, если в финал нужно 10 человек, а зарегистрировано только 7 - в финал пройдут все 7. ### Q: Как вручную редактировать состав финала? **A:** После генерации заходов вы можете: 1. Перейти в раздел **"Стартовые листы"** 2. Найти финальный заход 3. Нажать **"Редактировать"** 4. Добавить/удалить участников вручную ### Q: Можно ли не заполнять время выполнения? **A:** - Для **For Time** - не нужно, заполняется автоматически - Для **AMRAP/Weight/Distance** - обязательно для корректной работы tiebreaker ### Q: Что делать если случайно удалил заходы с результатами? **A:** К сожалению, если защита результатов была отключена и заходы удалены - восстановить результаты можно только из резервной копии базы данных. Поэтому **всегда держите защиту включенной!** ### Q: Можно ли провести 4-дневное соревнование? **A:** В текущей версии системы поддерживается максимум 3 дня. Для 4+ дней можно создать два отдельных соревнования (Квалификация и Финал). ### Q: Как система определяет топ-10 для финала если у атлетов равные баллы? **A:** При равной сумме баллов система учитывает: 1. Лучшее время выполнения среди всех WOD 2. Дата регистрации (раньше = лучше) --- ## 🎓 Лучшие практики ### Рекомендации по структуре соревнования **Для 2-дневного турнира:** ``` День 1: 2-3 квалификационных WOD День 2: 1-2 квалификационных WOD + 1 финал ``` **Для 3-дневного турнира:** ``` День 1: 2 квалификационных WOD День 2: 2 квалификационных WOD День 3: 1 квалификационный WOD + 1 финал ``` ### Совет по времени выполнения 1. **Всегда** просите судей фиксировать время выполнения всех комплексов 2. Вносите время сразу при вводе результатов 3. Если забыли внести время - можно отредактировать результат позже ### Проверка перед стартом соревнования ✅ Все WOD созданы и корректно настроены ✅ Указаны дни проведения для каждого WOD ✅ Финальные WOD имеют тип "Финал" ✅ Защита результатов включена ✅ Проведено тестирование на 2-3 участниках --- ## 📞 Поддержка Если у вас возникли вопросы или проблемы: - 📧 Email: support@ikong.ru - 💬 Telegram: @ikong_support - 📱 Телефон: +7 (XXX) XXX-XX-XX --- **Дата обновления:** 2025-10-23 **Версия:** 1.0