📄 Модуль «Опросы»
Опросы в МойСоцХаб — это не форма с парой радиокнопок, а полноценный конструктор уровня сервисов для сбора обратной связи. Десять типов вопросов, обязательность, порядок, ветвление по условию, анонимность, лимит участников, автозакрытие по дате, живой прогресс при прохождении и аналитика с кольцевыми диаграммами и выгрузкой в Excel. Этот гайд проведёт по модулю целиком — от первой заготовки до интерпретации результатов.
Модуль включается отдельно для каждой организации в Кабинет админа → ? Управление модулями переключателем «Опросы». Пока он выключен, кнопка раздела не появится в меню организации ни у кого, а конструктор будет недоступен.
Быстрый старт
Работа с опросом всегда идёт в три движения: создать заготовку, собрать вопросы в конструкторе, опубликовать. Черновик не виден участникам — он существует только для организатора, пока вы не переключите статус.
- Откройте организацию и перейдите в ? Опросы.
- Нажмите + Создать опрос (кнопка видна только тем, у кого есть право управления опросами).
- Задайте название и, при желании, описание — создастся черновик и сразу откроется конструктор.
- В конструкторе добавьте вопросы нужных типов, расставьте порядок, настройте доступ и срок приёма ответов.
- В блоке настроек переключите статус на «Опубликован» и сохраните — опрос появится у участников.
Конструктор опроса
Конструктор — это одна страница, на которой живут и настройки опроса, и список его вопросов, и форма добавления нового вопроса. Такой «верстак» позволяет видеть всю структуру целиком и править её без переходов между экранами.
Список вопросов и порядок
Каждый вопрос отображается карточкой с номером, текстом, плашкой типа и отметкой обязательности. Слева у карточки — стрелки ⬆️ и ⬇️ для смены порядка: порядок важен не только для чтения, но и для работы ветвления, которое опирается на вопросы, идущие выше. Справа — кнопки редактирования ✏️ и удаления ?.
Форма вопроса
Форма добавления и редактирования вопроса одна и та же: при редактировании она предзаполняется данными вопроса и открывается прокруткой к блоку. В ней выбирается тип, пишется текст и пояснение, задаются варианты (для типов с выбором) или длина шкалы, ставится обязательность и, при необходимости, условие показа.
Типы вопросов
Конструктор поддерживает десять типов — от однострочного текста до интерактивной шкалы. Типы с вариантами (single_choice, multiple_choice, dropdown) при выборе показывают поле вариантов, где каждый вариант пишется с новой строки; тип «Шкала» показывает поле максимальной оценки от 2 до 10.
| Тип | Как выглядит при прохождении | Когда использовать |
|---|---|---|
| Короткий текст | Однострочное поле | Имя, должность, короткий комментарий |
| Длинный текст | Многострочное поле | Развёрнутый отзыв, предложение |
| Один вариант | Карточки-радиокнопки | Единственный выбор из списка |
| Несколько вариантов | Карточки-чекбоксы | Множественный выбор |
| Выпадающий список | Селект | Длинный список, экономия места |
| Шкала | Интерактивный ряд кнопок с подсветкой | Оценка от 1 до N |
| Да / Нет | Два крупных переключателя | Бинарный вопрос, триггер ветвления |
| Дата | Поле выбора даты | Дата события, день рождения |
| Число | Числовое поле | Возраст, стаж, количество |
| Поле с проверкой формата | Контакт для связи |
При прохождении шкала загорается градиентом при наведении и фиксирует выбор по клику, а варианты подсвечиваются акцентной рамкой и галочкой — выбор ощущается тактильно, а не как заполнение серой формы.
Настройки опроса
Блок настроек в конструкторе управляет поведением опроса целиком. Большинство переключателей влияют на прохождение и на то, как выглядят результаты.
| Настройка | Что делает |
|---|---|
| Статус | Черновик скрыт от участников, Опубликован доступен, Закрыт больше не принимает ответы |
| Принимать ответы до | Дата и время автозакрытия; после них опрос закрывается сам, без ручного перевода в «Закрыт» |
| Анонимный опрос | В ответах не сохраняется имя участника — в выгрузке будет «анонимно» |
| Разрешить несколько ответов | Один человек может пройти опрос повторно; без галочки повтор блокируется |
| Требуется вход | Гостя без аккаунта отправляет на страницу входа вместо формы |
| Показывать прогресс | Липкая полоса прогресса вверху при прохождении |
Кто может проходить опрос
Доступ к прохождению — отдельная настройка, не связанная с правом управления. Она решает, кому из участников показывать опрос и пускать в форму.
Два режима доступа
- Все участники организации — проходит любой участник; режим по умолчанию, подходит для общих опросов и голосований.
- Только по праву роли — проходят только участники, у которых в роли включено право «? Участие в опросах». Менеджеры проходят всегда, в любом режиме.
В режиме «по праву роли» опрос, к которому у участника нет доступа, полностью скрывается из списка — ни карточки, ни замка. Это сознательное решение: человеку не показывают то, во что он не может постучать. Защита дублируется на уровне контроллера: прямая ссылка на такой опрос отдаёт ошибку доступа, так что обойти скрытие адресной строкой нельзя.
Черновики и закрытые опросы участники без права управления не видят никогда — в списке у менеджера они помечены плашками «Черновик» и «Закрыт», а у участника просто отсутствуют.
Прохождение опроса
Страница прохождения оформлена как отдельная «комната»: бумажный фон с тонкой диагональной штриховкой, крупный дисплейный заголовок, вопросы, плавно всплывающие при прокрутке. Вверху — липкий прогресс-бар, который считает только видимые в данный момент вопросы: если ветвление спрятало часть опроса, знаменатель уменьшается, и полоса остаётся честной.
Проверка обязательных вопросов
Обязательные вопросы помечены красной звёздочкой. При отправке форма сначала проверяет их на клиенте: первый пустой обязательный вопрос подсвечивается красной рамкой, а страница плавно прокручивается к нему. Та же проверка дублируется на сервере — обойти её отключённым JavaScript нельзя. Скрытые ветвлением обязательные вопросы при этом не блокируют отправку: если условие не выполнилось и вопрос не показывался, требовать на него ответ нечестно.
Защита от повторных ответов
Если галочка «Разрешить несколько ответов» не стоит, повторное прохождение невозможно: вместо формы откроется экран «Вы уже отвечали на этот опрос». Для залогиненных участников защита привязана к аккаунту, для гостей — к токену сессии. Лимит участников (max_responses) работает поверх этого: когда число завершённых ответов достигает лимита, опрос показывает экран «Приём ответов закрыт».
Ветвление по условию
Ветвление позволяет показывать вопрос только тем, кто дал определённый ответ на вопрос выше по списку. В форме вопроса есть блок «? Показать этот вопрос только при условии» с двумя полями: на какой вопрос смотрим и каким должно быть его значение.
Вопрос 1 — «Рекомендовали бы нас друзьям?» типа «Да / Нет». Вопрос 2 — «Что мы могли бы улучшить?» типа «Длинный текст» с условием: показать, если на вопрос 1 ответили no. Тогда при ответе «Да» второй вопрос исчезает прямо на глазах, прогресс-бар пересчитывается, а при «Нет» — появляется и, будучи обязательным, требует ответа.
Условие сравнивается по точному совпадению значения. Для «Да / Нет» это строки yes и no, для вариантов — текст выбранного варианта, для шкалы — число. Условие всегда ссылается на вопрос, стоящий выше в списке, поэтому сначала соберите «триггер», а уже потом вешайте на него зависимые вопросы.
Аналитика и результаты
Экран ответов открывается у менеджера по кнопке ? со счётчиком завершённых прохождений. Это не сухой отчёт, а витрина: сверху три плитки со сводкой (всего ответов, вопросов, статус), затем сводное кольцо активности по вопросам с выбором, а ниже — разбор каждого вопроса.
Кольцевые диаграммы
По каждому вопросу с вариантами рисуется кольцевая диаграмма (donut) в паре с легендой: цветная метка, текст варианта, мини-полоса процента и само число процентов. Сегменты прорисовываются с анимацией, наведение показывает тултип с долей. Текстовые вопросы отображаются списком ответов с акцентной левой каймой.
Диаграммы рисует библиотека Chart.js, но под каждой из них лежат обычные процентные бары на чистом CSS. Пока скрипт не отрисовал кольцо — видны бары; как только отрисовал — бары аккуратно прячутся. Если CDN с библиотекой по какой-то причине недоступен, человек всё равно видит полную картину в виде баров: пустого экрана не бывает никогда.
Экспорт в CSV
Кнопка ⤓ Экспорт CSV в шапке экрана ответов выгружает все завершённые ответы одним файлом: по строке на прохождение, по колонке на вопрос, плюс служебные колонки номера ответа, даты и участника (или «анонимно» для анонимных опросов). Файл формируется с разделителем ; и меткой кодировки, поэтому кириллица корректно открывается в Excel без «кракозябр». Множественный выбор в ячейке разворачивается через запятую.
Автозакрытие по дате
Поле «Принимать ответы до» задаёт момент, после которого опрос закрывается сам. На странице прохождения при этом видна плашка: пока срок не настал — «⏳ Принимает ответы до …», после — «? Приём ответов завершён», и форма для участников больше не открывается. Менеджер при этом может дослать тестовый ответ даже в закрытый опрос — чтобы проверить аналитику и выгрузку на реальных данных.
Роли и права доступа
Доступ к модулю опросов определяется двумя правами роли организации. Управление и участие разделены намеренно: можно дать человеку право проходить целевые опросы, не давая права их создавать, и наоборот.
| Разрешение | Что даёт |
|---|---|
manage_polls | Создание, редактирование и удаление опросов и вопросов, просмотр результатов и экспорт CSV. |
take_polls | Прохождение опросов с режимом доступа «только по праву роли». |
manage_organization | Даёт все права на опросы автоматически (есть у владельца организации). |
Администраторы сайта проходят мимо всех проверок. Участник без manage_polls видит только опубликованные опросы, которые ему разрешено пройти, и кнопку «? Пройти» у них — конструктор и результаты ему недоступны.
Включение и отключение модуля
Модуль включается владельцем организации в Кабинет админа → ? Управление модулями переключателем «Опросы». При выключении кнопка раздела исчезает из меню у всех, а сами опросы и собранные ответы сохраняются — при повторном включении конструктор и результаты вернутся в прежнем виде.
Шпаргалка
| Действие | Как сделать |
|---|---|
| Создать опрос | + Создать опрос в шапке раздела |
| Добавить вопрос | Форма «➕ Добавить вопрос» внизу конструктора |
| Поменять порядок вопросов | Стрелки ⬆️ / ⬇️ у карточки вопроса |
| Сделать вопрос условным | Блок «? Показать при условии» в форме вопроса |
| Ограничить круг участников | Настройка «Кто может проходить опрос» → «Только по праву роли» |
| Выдать право проходить | В роли организации включить «? Участие в опросах» |
| Закрыть опрос по расписанию | Поле «Принимать ответы до» в настройках |
| Посмотреть результаты | Кнопка ? со счётчиком в списке опросов |
| Выгрузить ответы | ⤓ Экспорт CSV в шапке экрана ответов |