Создание и настройка пользовательских полей

Создание многоселективного пользовательского поля в Discourse с множеством вариантов

Вводить десятки или сотни вариантов по одному в редакторе пользовательских полей Discourse — утомительное занятие. Я работал над многоцелевым инструментом CLI для Discourse под названием dsc, который упрощает такие операции и делает их более детерминированными с помощью локальных файлов. Одна из многих вещей, которую он может делать, — это управление пользовательскими полями (Custom User Fields).

dsc может создать новое пользовательское поле из YAML-файла, включая весь упорядоченный список вариантов за одну операцию. Команда ucf является алиасом для user-field.

Сначала просмотрите список существующих пользовательских полей:

dsc ucf list myforum --format yaml

Это покажет их ID, типы, варианты и настройки.

Подготовка поля

Создайте файл user-fields.yaml, заменив URL источника, вопрос и варианты на свои. Убедитесь, что ваш YAML корректен, так как легко допустить ошибку.

Например, вот многоселективное поле стран с 25 вариантами:

version: 1
source: https://forum.example.org
user_fields:
  - name: Countries
    description: В каких странах вы работаете? Выберите все подходящие варианты.
    field_type: multiselect
    editable: true
    requirement: on_signup
    show_on_profile: false
    show_on_signup: true
    show_on_user_card: false
    searchable: false
    options:
      - Аргентина
      - Австралия
      - Бразилия
      - Канада
      - Китай
      - Дания
      - Египет
      - Франция
      - Германия
      - Индия
      - Ирландия
      - Италия
      - Япония
      - Кения
      - Мексика
      - Нидерланды
      - Новая Зеландия
      - Нигерия
      - Норвегия
      - Сингапур
      - Южная Африка
      - Испания
      - Швеция
      - Великобритания
      - Соединенные Штаты

Это создает одно поле с 25 вариантами, а не 25 отдельных полей. Вы можете расширять список по мере необходимости — я успешно использовал этот подход для поля с более чем 250 вариантами.

Предпросмотр, создание и проверка

dsc ucf push --dry-run myforum user-fields.yaml
# Проверьте план и полный YAML-файл перед применением.
dsc ucf push myforum user-fields.yaml
dsc ucf show myforum <field-id> --format yaml

Буду рад получить обратную связь по dsc, включая идеи недостающих функций. Пожалуйста, создавайте issues в репозитории на GitHub.

2 лайка