Сценарий использования
Мы работаем над улучшением процесса онбординга для нашего сообщества. Естественно, мы хотели бы использовать информацию, которую мы уже знаем о пользователе, чтобы выполнять или отображать определённые действия на основе данных, которые они предоставляют.
Сегодня наши пользователи начинают создание учётной записи через нашу интеграцию с OIDC, регистрируясь в нашей компании. Они предоставляют OIDC электронную почту, имя и имя пользователя, после чего их перенаправляют обратно в Discourse.
Проблема
Теперь мы хотели бы предоставить им дополнительные поля для заполнения — что отлично, ведь Discourse это поддерживает! К сожалению, мы не можем отображать поля в зависимости от ответов на предыдущие поля. Например, мы хотели бы задать вопрос: «Какая роль лучше всего описывает вас?» с вариантами: developer, administrator и analyst.
- Если они выберут
developer, я, конечно, захочу спросить, какие языки программирования они предпочитают. Позже я также добавлю их в группу пользователей-разработчиков. - Если они выберут
analyst, я захочу задать им другой набор вопросов и добавить в другую группу пользователей.
Предлагаемое решение
Многие формы на веб-сайтах сегодня поддерживают условные поля (например: «Где вы узнали о нас?» Если выбрано «Другое», появляется дополнительное поле для объяснения). Было бы замечательно, если бы вы пошли по похожему (но более мощному) пути, как это было сделано с шаблонами форм для новых тем, добавив возможность зависеть от ID другого поля и конкретно от его значения. Например, это могло бы выглядеть так:
- type: dropdown
id: user-type
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Выберите свою роль..."
label: "Какой вариант лучше всего описывает вашу работу"
validations:
required: true
- type: dropdown
id: developer-type-programming-language
depends: user-type
choices:
- "Python"
- "JavaScript"
- "Java"
attributes:
none_label: "Предпочитаемый язык программирования..."
label: "Какой основной язык программирования используется в вашей роли?"
validations:
required: true
В этом примере всем пользователям будет задан первый вопрос. Если пользователь выберет «Developer» из выпадающего списка, на форме появится второй вопрос о предпочитаемом языке программирования.
Это улучшение условных полей можно использовать как в процессе онбординга пользователей, так и в изначально предназначенном для этого месте — при создании новых тем.


