Ambassadors - стратегия Амбассадоров
Особенности:
Мероприятие и форма заявки берется из полей CMS. Есть одно мероприятие и три формы заявки под каждую страницу.
Можно подавать только 1 заявку на мероприятие
Формам заявок обязательно нужно задать
redirectUrl
Обязательно должны быть части мероприятия под каждую форму/страницу. Из них берутся творческие задания.
У каждой формы в поле "Описание" обязательно должен стоять ID той или иной части мероприятия, которой соответствует данная форма
Эту стратегию используют заявки:
- Амбассадор
- Амбассадор Медиа
- Амбассадор Наставник
Сценарий пре-инициализации (проверка возможности подать в целом)
Обычный, проверяем активность мероприятия и части мероприятия.
Сценарий инициализации
Не схемой, потому что сложно и хардкодно.
0. Ищем часть мероприятия для этой формы
В поле "Описание" у формы должен быть прописан ID той или иной части мероприятия.
Если частей мероприятия нет, или из пришедших частей мероприятия ни один ID не нашелся в "Описании" текущей формы - выскакивает ошибка.
1. Есть заявки на мероприятие вообще?
Если да, создаем новый черновик на эту форму, автоматически записывая туда часть мероприятия.
Если нет (есть хотя бы одна существующая заявка на мероприятие) - идем дальше.
2. Берем первую попавшуюся заявку.
participantTypeID
(тип участника) заявки равен eventParticipantTypeID
формы, привязанной к странице?
Если да, и это черновик - берем этот черновик.
Если да, и это не черновик - выводим попап:
Заявка уже подана
Посмотреть статус можно в личном кабинете
[В личный кабинет]
Если нет - идем дальше.
3. У нас есть заявка на какую-то другую форму.
Ищем в списке всех форм мероприятия ту, чей eventParticipantTypeID
(тип участника) равен participantTypeID
этой заявки.
Если не нашли - запоминаем это как СООТВЕСТВИЕ НЕ НАЙДЕНО
. Не найти можем в случае, если человек подавался по форме X с типом участия "Амбассадор", заявка его имеет тип участия "Амбассадор", а потом форме поменяли тип участия на другой. Но это корнер кейс.
Читаем redirectUrl
формы. Если не заполнено - запоминаем это как СООТВЕТСТВИЕ НЕ НАЙДЕНО
.
Есть захардкоженные пути для каждого типа амбассадора. Если в найденной форме, на которую уже есть заявка, поле redirectUrl
(которое обычно выглядит как https://tavrida.art/ambassadors/application-xxx
) содержит один из путей - значит мы нашли тип амбассадорства, на которое была ранее подана заявка.
// Амбассадор
/ambassadors/application
// Амбассадор Медиа
/ambassadors/application-media
// Наставник
/ambassadors/application-mentor
Опять же, если соответствие не нашли по какой-то причине - запоминаем как СООТВЕТСТВИЕ НЕ НАЙДЕНО
.
4. Если эта ранее поданная заявка - черновик
Выводим следующие тексты:
4.1. Если Амбассадор
Уже есть черновик заявки на Амбассадора
Разрешена подача заявки только на одно направление. Вы можете удалить черновик в личном кабинете и податься на другое направление или продолжить его редактирование.
[Перейти к черновику]
// И ведем на /ambassadors/application
4.2. Если Медиа Амбассадор
Уже есть черновик на Медиа Амбассадора
Разрешена подача заявки только на одно направление. Вы можете удалить черновик в личном кабинете и податься на другое направление или продолжить его редактирование.
[Перейти к черновику]
// И ведем на /ambassadors/application-media
4.3. Если Наставник
Уже есть черновик на Наставника
Разрешена подача заявки только на одно направление. Вы можете удалить черновик в личном кабинете и податься на другое направление или продолжить его редактирование.
[Перейти к черновику]
// И ведем на /ambassadors/application-mentor
4.4. Если СООТВЕТСТВИЕ НЕ НАЙДЕНО
Уже есть черновик
Разрешена подача заявки только на одно направление.
У вас уже есть черновик, но система не смогла вычислить, на какое именно направление. Вы можете найти черновик в личном кабинете, удалить его и податься на другое.
[В личный кабинет]
5. Если поданная ранее заявка - НЕ черновик
4.1. Если Амбассадор
Уже подана заявка на Амбассадора
У вас уже есть заявка на другое направление амбассадорства. Если есть желание сменить направление, в личном кабинете нужно отозвать и удалить активную заявку и вернуться сюда.
[В личный кабинет]
4.2. Если Медиа Амбассадор
Уже подана заявка на Медиа Амбассадора
У вас уже есть заявка на другое направление амбассадорства. Если есть желание сменить направление, в личном кабинете нужно отозвать и удалить активную заявку и вернуться сюда.
[В личный кабинет]
4.3. Если Наставник
Уже подана заявка на Наставника
У вас уже есть заявка на другое направление амбассадорства. Если есть желание сменить направление, в личном кабинете нужно отозвать и удалить активную заявку и вернуться сюда.
[В личный кабинет]
4.4. Если СООТВЕТСТВИЕ НЕ НАЙДЕНО
Уже подана заявка на другое направление
У вас уже есть заявка на другое направление амбассадорства. Если есть желание сменить направление, в личном кабинете нужно отозвать и удалить активную заявку и вернуться сюда.
[В личный кабинет]
Автовыбор части мероприятия и инструкции к творческим заданиям
Для мероприятия Амбассадоры специально создается 3 части мероприятия (столько же, сколько и форм).
При этом части в самой заявке выбираются автоматически, незаметно для пользователя, НО их все равно нужно делать активными!
Части нужны не только для внутренней отчетности, но еще и для уникальных инструкций к творческим заданиям.
Вот, например, ссылка на редактирование части мероприятия Амбассадоры 2024
- Наставник
https://admin.tavrida.ruvents.dev/event-part/edit?id=042bdc2a-26ed-4d46-9c70-615e09c0b6a9
Видите id=042bdc2a-26ed-4d46-9c70-615e09c0b6a9
в конце ссылки?
Именно его надо ввести в поле "Описание" в форме, которая должна идти для этой части мероприятия.
Итого, инструкция по заполнению
1. Нам нужен ивент с тремя частями мероприятия
Откройте эти части сразу в новых вкладках, чтобы потом скопировать их ID.
2. Нам нужно в каждой форме мероприятия добавить описание
2.1. Вытаскиваем ID нужной части мероприятия из URL
2.2. Вставляем ID в описание
2.3. Не забываем прописать верное значение "Ссылка редиректа"
3. Помним, что страницы всего три, и они захардкожены
// Амбассадор
https://tavrida.art/ambassadors/application
// Амбассадор Медиа
https://tavrida.art/ambassadors/application-media
// Наставник
https://tavrida.art/ambassadors/application-mentor
Идем редактировать каждую страницу заявки в CMS в разделе Редактор контента -> Заявки 2.0., и добавляем блок: