Перейти к основному содержимому

Организации, группы и площадки

Зачем нужно

Документ описывает, как преподавательский режим с выбранной организацией участвует в олимпиадах, конкурсах и интеллектуальных соревнованиях «Систематики».

Организация может быть школой, кружком, образовательным центром или партнёром. В контексте олимпиады организация может выполнять разные роли:

  • вести своих учеников через преподавателей и Learning Groups;
  • проводить тур очно только для своих учеников;
  • стать открытой очной площадкой для внешних участников;
  • совмещать проведение для своих учеников и роль открытой площадки;
  • быть только площадкой без собственных учеников в этом сезоне.

Базовая организация, пользователи, членство и роли принадлежат домену идентификации и доступа. Канонические учебные группы и списки учеников принадлежат Learning Workspace / Learning Group. Домен олимпиад использует эти данные и добавляет контекстные роли организации в конкретном сезоне или туре.

Что входит

Документ фиксирует:

  • как организация участвует в сезоне олимпиады;
  • как пользователь действует от имени организации;
  • как преподаватель выбирает Learning Group и создаёт CompetitionGroup snapshot;
  • как snapshot регистрируется на сезон;
  • как внутри группы смешиваются способы прохождения тура;
  • как организация проводит тур только для своих учеников;
  • как организация становится открытой площадкой;
  • как устроена заявка площадки;
  • как задаются вместимость, адрес, контакты, классы, слоты и условия прихода участника;
  • какие поля площадки публичны, а какие остаются административными;
  • как участники выбирают площадку;
  • какие права доступа нужны для преподавателя, помощника, координатора, площадочного подслоя и админа «Систематики».

Что не входит

Документ не проектирует подробно:

  • общую регистрацию организации на платформе;
  • юридическую верификацию организации;
  • финальную модель ролей identity-домена;
  • детальные экраны кабинета организации;
  • генерацию актов, договоров и отчётов;
  • загрузку и проверку сканов работ;
  • финальные API-контракты;
  • оплату платных конкурсов.

4. Главный принцип модели

Организация не должна иметь один постоянный тип «площадка».

Площадка — это контекстная роль организации в конкретном сезоне или туре.

Одна и та же организация может:

СценарийОписание
Только свои ученикишкола или кружок проводит тур для учеников своих Learning Groups
Только открытая площадкаорганизация принимает внешних участников, но не ведёт своих учеников в сезоне
Совмещённый режиморганизация ведёт своих учеников и одновременно принимает внешних участников
Без участия в сезонеорганизация существует в системе, но не участвует в данном сезоне

Следствие: роль организации в олимпиаде должна храниться отдельно от базовой сущности Organization.

Для пользователя это не отдельный «кабинет организации» рядом с кабинетом преподавателя. Пользователь входит в преподавательский режим, выбирает организацию, а затем получает подслои по роли: работа с Learning Groups, административный подслой, площадочный подслой, помощник проведения.

CompetitionGroup не является общим списком учеников преподавателя. Это снимок Learning Group для регистрации и проведения конкретного сезона.

5. Основные сущности

СущностьНазначениеИсточник истины
Organizationшкола, кружок, центр или партнёридентификация и доступ
OrganizationMembershipчленство пользователя в организацииидентификация и доступ
OrganizationRoleроль пользователя внутри организацииидентификация и доступ
LearningGroupканоническая учебная группаLearning Workspace
CompetitionGroupснимок LearningGroup для сезонаолимпиады
OrganizationSeasonRoleроль организации в конкретном сезоне олимпиадыолимпиады
GroupSeasonRegistrationрегистрация группы на сезонолимпиады
VenueApplicationзаявка стать открытой площадкойолимпиады
Venueподтверждённая площадкаолимпиады
VenueCapacityвместимость площадкиолимпиады
VenueSlotслот проведения на площадкеолимпиады
VenueContactконтактное лицо площадкиолимпиады
VenueParticipantAssignmentзапись участника на площадкуолимпиады

6. Роли пользователя внутри выбранной организации

Роли пользователя внутри организации должны приходить из домена идентификации и доступа, но домен олимпиад должен явно описать, какие действия они дают в олимпиадном контексте.

РольСмыслТиповые права в олимпиадах
organization_ownerвладелец или главный администратор организацииуправляет организацией и выдаёт роли в identity-контуре
organization_adminадминистративный подслойуправляет регистрациями, преподавателями, заявками и списками участников
olympiad_coordinatorадминистративный подслойвидит несколько преподавателей, регистрирует snapshots, управляет проведением
teacherпреподавательский слойвыбирает Learning Groups, регистрирует учеников, проводит туры
assistant_organizerhelper layerпомогает проводить тур, может видеть ограниченный набор данных
venue_managerплощадочный подслойуправляет заявкой, слотами, списками участников площадки
venue_staffсотрудник площадкивидит инструкции и списки участников в ограниченном объёме

Правила:

  1. Один пользователь может быть членом нескольких организаций.
  2. В разных организациях у пользователя могут быть разные роли.
  3. Роль учителя не должна быть глобальным флагом пользователя.
  4. Действие пользователя в олимпиаде должно проверяться через actor context: личный, семейный, преподавательский с выбранной организацией, административный подслой, площадочный подслой или админ «Систематики».
  5. Пользователь может быть учителем в одной организации и координатором в другой.

7. OrganizationSeasonRole

OrganizationSeasonRole описывает, какую роль организация играет в конкретном сезоне.

ПолеОписание
idуникальный идентификатор
identity_organization_idexternal ref на identity-owned организацию
competition_organization_idлокальная олимпиадная проекция организации в сезоне
competition_season_idсезон
role_typeтип роли организации в сезоне
statusстатус роли
approved_by_user_idкто подтвердил роль, если нужно
approved_atдата подтверждения
settingsнастройки роли в сезоне

Типы role_type:

КодНазваниеОписание
own_students_organizerОрганизатор для своих учениковорганизация ведёт свои группы и проводит туры для них
open_venueОткрытая площадкаорганизация принимает внешних участников
partnerПартнёрорганизация участвует в партнёрском формате
external_hostВнешний организатордля конкурсов, где «Систематика» не владеет полным регламентом

Статусы:

СтатусЗначение
draftроль готовится
requestedорганизация запросила роль
pending_reviewожидает проверки
approvedроль подтверждена
rejectedроль отклонена
suspendedроль временно приостановлена
archivedроль архивирована после сезона

Правила:

  1. Одна организация может иметь несколько OrganizationSeasonRole в одном сезоне.
  2. Роль open_venue не должна автоматически означать, что организация ведёт своих учеников.
  3. Роль own_students_organizer не должна автоматически открывать организацию для внешних участников.
  4. Подтверждённые роли должны влиять на доступные подслои преподавательского режима.

8. CompetitionGroup snapshot

CompetitionGroup — олимпиадный снимок LearningGroup, с которым преподаватель работает в конкретном сезоне.

Постоянная учебная группа живёт в Learning Workspace. Competitions фиксирует только snapshot состава, выбранного для регистрации и проведения олимпиады.

ПолеОписание
idуникальный идентификатор
identity_organization_idexternal ref на identity-owned организацию
learning_workspace_idexternal ref на Learning Workspace
learning_group_idexternal ref на LearningGroup
title_snapshotназвание группы на момент snapshot
primary_teacher_user_idосновной преподаватель
member_snapshotсостав и display-данные на момент snapshot
snapshot_taken_atкогда зафиксирован снимок
statusстатус группы

Статусы:

СтатусЗначение
activeгруппа активна
archivedгруппа архивирована
draftгруппа создана, но не используется

Правила:

  1. Каноническая группа принадлежит Learning Workspace, а не competitions.
  2. Snapshot используется только в рамках сезона и не должен становиться разделом «мои ученики».
  3. У snapshot может быть основной преподаватель и помощники с урезанными правами.
  4. Ученик может быть зарегистрирован без аккаунта, если он есть в Learning Group или выбран преподавателем по правилам workspace.
  5. Способ прохождения тура не должен храниться только на snapshot, потому что внутри группы возможен смешанный режим.
  6. Обновление Learning Group после snapshot не меняет состав регистрации без явного refresh/add action.

9. GroupSeasonRegistration

GroupSeasonRegistration — регистрация группы на сезон олимпиады.

ПолеОписание
idуникальный идентификатор
competition_group_idsnapshot LearningGroup
learning_workspace_idexternal ref на Learning Workspace
learning_group_idexternal ref на LearningGroup
competition_season_idсезон
registered_by_user_idкто зарегистрировал группу
identity_organization_idexternal ref на identity-owned организацию
statusстатус регистрации группы
submitted_atдата подачи
confirmed_atдата подтверждения

Статусы:

СтатусЗначение
draftрегистрация группы готовится
pre_submittedпредварительная регистрация группы создана
needs_completionтребуется дозаполнение данных участников или оплаты
submittedрегистрация отправлена
approvedрегистрация подтверждена
partially_approvedчасть участников требует проверки
rejectedрегистрация отклонена
cancelledрегистрация отменена
duplicate_holdрегистрация удержана из-за возможных дублей

Правила:

  1. Регистрация группы не заменяет индивидуальные SeasonParticipation учеников.
  2. После подтверждения групповой регистрации у каждого ученика должно быть своё участие в сезоне.
  3. Участники группы могут иметь разные способы прохождения тура.
  4. В платных конкурсах подтверждение группы может зависеть от оплаты или внешнего правила.
  5. Registration может включать выбранных учеников, а не весь LearningGroup.

10. Проведение тура для своих учеников

Организация может проводить тур очно только для своих учеников без статуса открытой площадки.

Сценарий:

  1. Организация имеет роль own_students_organizer в сезоне.
  2. Учитель или координатор создаёт группу.
  3. Учитель добавляет учеников.
  4. Группа регистрируется на сезон.
  5. Для учеников создаются TourParticipation.
  6. Для части учеников delivery_mode может быть teacher_offline.
  7. Учитель получает материалы и инструкции.
  8. Учитель проводит тур.
  9. Учитель вносит ответы или загружает сканы.
  10. Результаты доступны ученикам, родителям, учителю и организации в рамках прав.

Правила:

  1. Проведение для своих учеников не делает организацию открытой площадкой.
  2. Внешние участники не могут выбрать такую организацию как площадку.
  3. Материалы и инструкции могут отличаться от материалов открытой площадки.
  4. Учитель должен видеть только своих учеников, если у него нет роли координатора.

11. Открытая очная площадка

Открытая площадка — подтверждённая организация, куда могут записаться внешние участники, допущенные к очному туру.

Открытая площадка нужна уже в первой версии домена, потому что этот сценарий уже используется.

Сценарий:

  1. Представитель организации выбирает возможность стать очной площадкой.
  2. Организация подаёт VenueApplication.
  3. Администратор проверяет заявку.
  4. После одобрения создаётся Venue.
  5. Площадка задаёт адрес, контакты, вместимость, классы и слоты.
  6. Участники, допущенные к очному туру, выбирают площадку.
  7. Площадка получает списки участников и инструкции.
  8. Площадка проводит тур.
  9. Площадка передаёт работы, сканы или отчётные материалы.

Правила:

  1. Площадка всегда связана с организацией.
  2. Площадка может относиться к сезону, туру или конкретному зачёту.
  3. Площадка не обязана вести своих учеников.
  4. Организация может быть площадкой и одновременно организатором для своих учеников.
  5. Участники площадки должны быть разделены на своих и внешних, если организация совмещает роли.

12. VenueApplication

VenueApplication — заявка организации стать открытой площадкой.

ПолеОписание
idуникальный идентификатор
identity_organization_idexternal ref на identity-owned организацию
competition_organization_idлокальная олимпиадная проекция организации, если уже создана
competition_season_idсезон
tour_idтур, если заявка относится к конкретному туру
submitted_by_user_idкто подал заявку
statusстатус заявки
legal_nameофициальное или отображаемое название организации
addressадрес площадки
cityгород
countryстрана
contact_nameосновное контактное лицо
contact_emailemail контакта
contact_phoneтелефон контакта
capacity_totalобщая вместимость
accepted_grade_categoriesклассы или категории, которые принимает площадка
commentкомментарий заявителя
admin_commentкомментарий администратора
entrance_rulesособенности входа и пропускной системы
required_documentsкакие документы нужны участнику
guardian_policyможно ли приходить с сопровождающим и где он ожидает
shoe_policyнужна ли сменная обувь
food_water_policyможно ли брать воду и еду
arrival_time_policyза сколько минут приходить
accessibility_notesдоступность, лифт, ограничения
security_notesважные правила безопасности
printing_capabilitiesможет ли площадка печатать материалы
scanning_capabilitiesможет ли площадка сканировать работы
participant_public_commentкомментарий, который увидит участник
admin_internal_commentвнутренний комментарий для «Систематики»
submitted_atдата подачи
reviewed_atдата проверки
reviewed_by_user_idкто проверил

Статусы:

СтатусЗначение
draftзаявка готовится
submittedзаявка отправлена
pending_reviewожидает проверки
needs_changesнужны уточнения
approvedзаявка одобрена
rejectedзаявка отклонена
withdrawnорганизация отозвала заявку
cancelledзаявка отменена администратором

Правила:

  1. Подать заявку может пользователь с правом действовать от имени организации.
  2. Одобрение заявки создаёт или активирует Venue.
  3. Изменение ключевых параметров после одобрения может требовать повторной проверки.
  4. Все решения по заявке должны аудироваться.
  5. Participant-facing поля должны быть заполнены до публикации площадки, если сезон требует очный выбор участником.
  6. printing_capabilities, scanning_capabilities и admin_internal_comment доступны только администратору и площадочному подслою, но не участнику и не storefront.

13. Venue

Venue — подтверждённая площадка проведения.

ПолеОписание
idуникальный идентификатор
competition_organization_idлокальная олимпиадная проекция организации
competition_season_idсезон
tour_idтур
result_track_idзачёт, если площадка относится к конкретному зачёту
venue_application_idзаявка-основание
titleназвание площадки
addressадрес
cityгород
countryстрана
statusстатус площадки
public_visibilityвидна ли площадка участникам для выбора
instructionsинструкции для площадки
access_rulesправила входа и пропускной системы
required_documentsдокументы участника
guardian_policyправила сопровождающих
facility_rulesсменка, вода, еда, время прихода, доступность
technical_capabilitiesпечать, сканирование и операционные возможности
participant_public_commentпубличный комментарий для участника
admin_internal_commentвнутренний комментарий

Статусы:

СтатусЗначение
draftплощадка создаётся
activeплощадка активна
registration_openплощадку можно выбрать
fullмест нет
closed_for_selectionвыбор площадки закрыт
runningна площадке идёт проведение
completedпроведение завершено
suspendedплощадка временно отключена
cancelledплощадка отменена
archivedплощадка архивирована

Правила:

  1. Venue создаётся только для подтверждённой роли открытой площадки.
  2. Venue может иметь несколько слотов.
  3. Venue может иметь ограничения по классам, категориям, зачётам и способам прохождения.
  4. Venue может быть скрыта от выбора участниками, но оставаться доступной администратору.
  5. Закрытие площадки для выбора не должно удалять уже назначенных участников.
  6. Публичная карточка участника показывает адрес, карту, правила входа, документы, сопровождающих, facility rules и public comment.
  7. Storefront получает только published participant-safe поля; internal contacts, technical capabilities и admin comments не передаются.

14. VenueCapacity

VenueCapacity задаёт вместимость площадки.

ПолеОписание
idуникальный идентификатор
venue_idплощадка
grade_category_idкласс или категория, если вместимость ограничена
slot_idслот, если вместимость задаётся по слотам
capacityмаксимальное число участников
reserved_capacityрезерв администратора, если нужен
current_assigned_countтекущее число записанных участников

Правила:

  1. Вместимость может быть общей или по классам.
  2. Вместимость может быть общей или по слотам.
  3. Нельзя записать участника сверх вместимости без административного override.
  4. Вместимость нельзя уменьшить ниже current_assigned_count без административного процесса переноса или снятия участников.
  5. При смене вместимости нужно пересчитать доступность площадки.

15. VenueSlot

VenueSlot — конкретный поток или временной слот на площадке.

ПолеОписание
idуникальный идентификатор
venue_idплощадка
tour_window_idсвязанное окно проведения, если есть
titleназвание слота
starts_atначало
ends_atконец
capacityвместимость слота
accepted_grade_categoriesклассы или категории
statusстатус слота

Статусы:

СтатусЗначение
draftслот создаётся
openслот открыт для выбора
fullслот заполнен
closedслот закрыт для выбора
completedслот завершён
cancelledслот отменён

Правила:

  1. Площадка может иметь один или несколько слотов.
  2. Участник может выбрать слот только при наличии мест.
  3. Слот может быть ограничен классами или категориями.
  4. Отмена слота требует переназначения участников или ручного решения администратора.

16. VenueContact

VenueContact — контактное лицо площадки.

ПолеОписание
idуникальный идентификатор
venue_idплощадка
user_idпользователь, если контакт есть в системе
nameимя контакта
role_titleроль на площадке
emailemail
phoneтелефон
is_primaryосновной контакт
visibilityкто видит контакт

Правила:

  1. У площадки должен быть минимум один основной контакт.
  2. Публичность контактов должна настраиваться.
  3. Контакт может быть пользователем платформы или текстовой записью.

17. VenueParticipantAssignment

VenueParticipantAssignment — запись участника на площадку или слот.

ПолеОписание
idуникальный идентификатор
venue_idплощадка
venue_slot_idслот, если выбран
tour_participation_idучастие в туре
assigned_by_user_idкто назначил площадку
assignment_sourceвыбор участника, учителя, администратора, автоматическое распределение
statusстатус назначения
assigned_atдата назначения
cancelled_atдата отмены
cancellation_reasonпричина отмены

Статусы:

СтатусЗначение
selectedучастник выбрал площадку
confirmedназначение подтверждено
waitlistedучастник в листе ожидания
cancelledназначение отменено
transferredучастник перенесён на другую площадку
attendedучастник явился
absentучастник не явился

Правила:

  1. Участник может иметь только одно активное назначение на площадку для одного тура.
  2. Назначение площадки должно соответствовать TourParticipation и DeliveryMode.
  3. Смена площадки после закрытия выбора требует прав администратора или специального правила.
  4. Площадка видит только участников, назначенных на неё.
  5. Если организация совмещает свои группы и открытую площадку, внешние участники должны быть отделены от своих учеников в интерфейсе и отчётах.
  6. При смене площадки UI предупреждает: “Если вы выберете новую площадку, регистрация на предыдущую площадку будет отменена. Место на предыдущей площадке может стать доступно другим участникам.”

18. Сценарий: организация только для своих учеников

  1. Организация получает или имеет роль own_students_organizer.
  2. Преподаватель выбирает организацию в teacher mode.
  3. Преподаватель выбирает LearningGroup.
  4. Competitions создаёт CompetitionGroup snapshot.
  5. Преподаватель регистрирует snapshot или выбранных учеников на сезон.
  6. В первом туре часть учеников может писать очно, часть онлайн.
  7. Преподаватель или помощник вносит ответы или загружает сканы за очных участников.
  8. Преподаватель видит результаты своих учеников после publication policy.
  9. Координатор видит результаты нескольких snapshots, если у него есть права.

Ограничение: внешние участники не могут выбрать эту организацию как открытую площадку.

19. Сценарий: организация только как открытая площадка

  1. Организация подаёт заявку VenueApplication.
  2. Администратор одобряет заявку.
  3. Создаётся Venue.
  4. Организация указывает слоты, вместимость и контакты.
  5. Участники, допущенные к очному туру, выбирают площадку.
  6. Площадка получает списки.
  7. Площадка проводит тур.
  8. Площадка передаёт работы и отчёты.
  9. Площадка отправляет фотоотчёт со статусом submitted, который админ подтверждает или возвращает с комментарием.

Ограничение: организация может не иметь собственных учеников в этом сезоне.

20. Сценарий: организация совмещает свои группы и открытую площадку

  1. Организация ведёт свои Learning Groups через преподавателей.
  2. Та же организация получает статус открытой площадки.
  3. В списке площадки появляются внешние участники.
  4. Свои ученики организации могут участвовать через CompetitionGroup snapshot или через площадку в зависимости от правил сезона.
  5. Преподавательский режим должен разделять:
    • своих учеников;
    • внешних участников площадки;
    • общий операционный список проведения, если он нужен.

Правила:

  1. Свои ученики и внешние участники не должны смешиваться в правах доступа.
  2. Преподаватель своих учеников не получает автоматический доступ к внешним участникам площадки.
  3. Ответственный за площадку может видеть внешних участников, но не обязательно видит все Learning Groups организации.
  4. Координатор может иметь расширенные права, если это разрешено ролью.

21. Права доступа

АкторМожет делать
teacherвыбирать Learning Groups, создавать CompetitionGroup snapshots, регистрировать своих учеников, вносить ответы по своим участникам
assistant_organizerвыполнять только выданные действия: roster view, answers entry, file upload
olympiad_coordinatorуправлять несколькими snapshots организации, видеть агрегированные списки и статусы
organization_adminуправлять ролями в выбранной организации, snapshots и заявками площадки
venue_managerуправлять заявкой площадки, параметрами площадки, слотами и списками участников площадки
venue_staffвидеть инструкции и ограниченные списки участников площадки
competition_adminпроверять заявки, подтверждать площадки, переназначать участников, управлять исключениями
super_adminуправлять глобальными настройками и аудитом

Минимальные permissions:

ПравоНазначение
organization_season_role.requestзапросить роль организации в сезоне
organization_season_role.approveподтвердить роль организации
learning_group.readчитать доступные Learning Groups через Learning Workspace
competition_group.snapshot.createсоздать snapshot для сезона
competition_group.helpers.manageвыдать/отозвать права помощника
group_registration.createзарегистрировать snapshot или выбранных учеников
venue_application.createподать заявку площадки
venue_application.reviewрассмотреть заявку площадки
venue.configureнастраивать площадку
venue.capacity.changeменять вместимость с capacity guard
venue_slot.configureнастраивать слоты
venue_assignment.createназначить участника на площадку
venue_assignment.transferперенести участника на другую площадку
venue_roster.viewвидеть список участников площадки
own_students_roster.viewвидеть список своих учеников

22. Аудит

Аудироваться должны:

  • запрос роли организации в сезоне;
  • подтверждение или отклонение роли организации;
  • создание и refresh CompetitionGroup snapshot;
  • добавление ученика из Learning Group в snapshot;
  • выдача/отзыв прав помощника;
  • регистрация snapshot на сезон;
  • подача заявки площадки;
  • изменение заявки площадки;
  • решение администратора по заявке;
  • создание площадки;
  • изменение адреса, вместимости, контактов и слотов;
  • попытка уменьшить вместимость ниже текущих назначений;
  • изменение participant-facing условий площадки после публикации;
  • смена площадки участником и отмена предыдущего назначения;
  • выбор участником площадки;
  • перенос участника между площадками;
  • ручное превышение вместимости;
  • закрытие площадки для выбора;
  • отмена площадки или слота;
  • отметка явки или неявки участника;
  • отправка и проверка фотоотчёта.

23. Доменные события

СобытиеКогда возникает
OrganizationSeasonRoleRequestedорганизация запросила роль в сезоне
OrganizationSeasonRoleApprovedроль организации подтверждена
CompetitionGroupSnapshotCreatedсоздан snapshot LearningGroup
CompetitionGroupHelperGrantedпомощнику выданы ограниченные права
GroupSeasonRegistrationSubmittedгруппа зарегистрирована на сезон
VenueApplicationSubmittedподана заявка площадки
VenueApplicationApprovedзаявка площадки одобрена
VenueCreatedсоздана площадка
VenueConfiguredплощадка настроена
VenueSlotCreatedсоздан слот площадки
VenueParticipantAssignedучастник назначен на площадку
VenueParticipantTransferredучастник перенесён на другую площадку
VenueCapacityChangedизменилась вместимость площадки
VenueCapacityChangeBlockedуменьшение вместимости требует admin process
VenueSelectionClosedвыбор площадки закрыт
VenueParticipantPublicRulesUpdatedизменились публичные правила площадки
VenueCancelledплощадка отменена
PhotoReportSubmittedфотоотчёт отправлен
PhotoReportReviewedфотоотчёт подтверждён или не подтверждён

24. Нестандартные случаи

СитуацияТребуемое поведение
Организация подала заявку площадки, но не указала вместимостьзаявка не может быть одобрена или требует уточнений
Площадка стала полнойучастники больше не могут выбрать её без override
Участник хочет сменить площадку после закрытия выборатребуется правило сезона или действие администратора
Участник меняет площадку до закрытия выбораUI показывает предупреждение об отмене предыдущей площадки
Слот площадки отменёнучастников нужно переназначить или уведомить
Преподаватель пытается увидеть внешних участников площадкидоступ запрещён, если он не venue_manager или не имеет расширенной роли
Ответственный площадки пытается увидеть Learning Groups организациидоступ запрещён, если роль площадки не даёт таких прав
Вместимость уменьшают ниже текущих назначенийизменение блокируется и создаётся admin process
Помощник пытается сделать действие вне своей ролидоступ запрещён и аудитируется
Организация совмещает свои группы и открытую площадкуинтерфейсы и отчёты должны разделять своих и внешних участников
Один участник назначен на две площадки одного турасистема должна запретить второе активное назначение
Вместимость уменьшили ниже числа уже записанныхсистема должна показать конфликт и требовать ручного решения

Готовность

  1. Добавить модель OrganizationSeasonRole.
  2. Добавить модель CompetitionGroup snapshot с refs на Learning Workspace / Learning Group.
  3. Добавить модель GroupSeasonRegistration.
  4. Добавить модель VenueApplication.
  5. Добавить модель Venue.
  6. Добавить expanded venue fields: правила входа, документы, сопровождающие, facility rules, technical capabilities, public/admin comments.
  7. Добавить модель VenueCapacity с запретом уменьшения ниже текущих назначений.
  8. Добавить модель VenueSlot.
  9. Добавить модель VenueContact.
  10. Добавить модель VenueParticipantAssignment.
  11. Добавить публичную публикацию площадок списком и на карте.
  12. Добавить проверки прав для преподавателя, помощника, координатора, административного и площадочного подслоёв.
  13. Добавить аудит изменений заявок, площадок, слотов, вместимости, назначений участников и фотоотчётов.
  14. Добавить запрет двойного активного назначения участника на площадку одного тура.
  15. Добавить базовую проверку вместимости площадки и слота.

27. Статус документа

Документ является первой версией модели организаций, групп и площадок в домене олимпиад. Следующий рекомендуемый документ: форматы проведения тура, ответы, сканы и просмотр работы.