Скрипт «Добавить пользователя в группу….» имеет разные поля ввода для двух триггеров

При рассмотрении скрипта «Добавить пользователя в группу через пользовательское поле» кажется, что есть небольшая проблема. Если выбран триггер «Первый вход пользователя», поле «Имя пользовательского поля» должно быть установлено в имя пользовательского поля, например «Родной язык». Однако если выбран триггер «Повторяющийся», поле «Имя пользовательского поля» должно быть установлено на основе id пользовательского поля, например «user_field_5».

Подробности о том, как найти имя для использования с триггером «Повторяющийся», здесь: Finding Userfield Custom Name for 'Add user to group through User Custom Field' - #2 by leonardo.

В идеале дружественное имя (например, «Родной язык») должно использоваться как правильное значение для обоих доступных триггеров. Соответствующий код находится здесь: https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb. То, как триггер «Первый вход пользователя» находит правильное пользовательское поле по имени поля (вместо id), показано здесь:

https://github.com/discourse/discourse-automation/blob/main/lib/discourse_automation/scripts/add_user_to_group_through_custom_field.rb#L54-L67

Возможно, существует способ применить эту логику к триггеру «Повторяющийся» с обратной совместимостью.

3 лайка

Просто для сведения, это упомянуто в пошаговом руководстве:

Я упоминал о необходимости доработки скрипта для обеспечения согласованности, хотя это пока не является приоритетом. Также есть настройки администратора «Пользовательские поля для публичных пользователей» и «Пользовательские поля для сотрудников», которые было бы неплохо привести в соответствие с этим.

(А также есть «Поля пользователей, доступные для группировки в опросах», которые используют «дружественное имя»)

4 лайка

Вот PR для исправления проблемы:

2 лайка

Это теперь решено с помощью нового выпадающего списка для выбора ваших существующих пользовательских полей, который работает для обоих триггеров: :partying_face:

2 лайка