Перейти к содержанию

Администрирование анкет

Управление анкетами обратной связи в CMS.


Создание анкеты

  1. Основные поля:
  2. Название (например, «Оценка видеорезюме»)
  3. Описание (необязательно)
  4. Символьный идентификатор (external_id) — используется для подхвата анкеты на устройствах

  5. Добавление вопросов:

  6. Выбор типа вопроса (шкала, выбор варианта, текст, выбор профессий)
  7. Текст вопроса
  8. Обязательность
  9. Порядок отображения
  10. Условие показа (если нужно)

Публикация и версионирование

Жизненный цикл анкеты

  1. Создание — анкета в статусе черновика, можно редактировать вопросы, текст, порядок
  2. Публикация — анкета становится активной (is_active = true), доступна для прохождения на устройствах
  3. Изменение — если нужно изменить опубликованную анкету:
  4. Нажать «Создать новую версию» (копирование текущей активной)
  5. Новая версия создаётся как черновик
  6. Редактировать новую версию
  7. Опубликовать новую версию → старая автоматически деактивируется

Что происходит при смене версии

Сценарий: пользователь начал проходить анкету v1, но в этот момент администратор опубликовал v2.

Результат: - Пользователь завершает прохождение по v1 - Ответ (SurveyResponse) привязывается к survey_id версии v1 - Новая версия v2 не затрагивает текущие прохождения

Техническая реализация: - Устройство при загрузке анкеты получает конкретный survey_id (не только external_id) - Все ответы привязываются к этому survey_id - Даже если активная версия сменится, ответы сохраняются в той версии, которую проходил пользователь

Ограничение

Не может быть двух активных анкет с одинаковым external_id.


Генерация QR-ссылок

Для веб-интерфейса (гости без авторизации):

  1. Выбрать анкету
  2. Нажать «Сгенерировать QR-ссылку»
  3. Указать срок жизни JWT (например, 7 дней, 30 дней, бессрочно)
  4. Система генерирует ссылку вида: https://platform.example.com/feedback?token=...
  5. Скачать QR-код или скопировать ссылку

Срок жизни JWT — защита от спама неавторизованных пользователей.


Управление вопросами

Типы вопросов

Типы вопросов — из справочника.

Условные вопросы

Вопрос может показываться только при определённом ответе на родительский вопрос.

Пример: - Вопрос 1: «Оцените удобство» (шкала 1–5) - Вопрос 2: «Что именно неудобно?» (текст) — привязан к вопросу 1, условие: «показать если ответ ≤ 2»

Структура: - parent_id — ID родительского вопроса, на ответ которого смотрим - condition — JSON с оператором и значением: {"operator": "lte", "value": 2}

Операторы: - eq — равно - neq — не равно - gt — больше - gte — больше или равно - lt — меньше - lte — меньше или равно - in — значение в списке