Когда пользователь соответствует нескольким автоматическим назначениям «звания» (через группы значков), как определяется итоговое звание?
Возможно ли установить иерархию между ними, например, через порядок SQL-запросов или в интерфейсе автоматизации?
Это критически важно для наших общих уровней пользователей и уровней доверия, которые определяются постепенным выполнением конкретных значков (задач в нашем сообществе).
Любые советы или помощь будут очень ценны.
Группа бейджей с наивысшим приоритетом, которой назначен заголовок, определяет окончательный заголовок.
Да, возможно установить иерархию заголовков:
1. Запросы SQL для бейджей
Вы можете управлять приоритетом, используя:
Логическую упорядоченность запросов в скрипте автоматизации или по расписанию.
SQL для отмены заголовков с более низким приоритетом, если присвоен заголовок с более высоким приоритетом.
Добавление логики, например IF NOT EXISTS (SELECT FROM …), для обеспечения исключительности.
2. Интерфейс автоматизации (Discourse Admin > Badges)
Хотя интерфейс не поддерживает прямое изменение порядка перетаскиванием, вы можете:
Назначать заголовки только самым престижным бейджам.
Использовать пользовательскую автоматизацию (через плагин или внешний скрипт) для принудительного соблюдения иерархии.
3. Приоритизация групп
Если несколько групп бейджей назначают заголовки, Discourse определяет приоритет на основе:
Ручного выбора заголовка пользователем (это имеет приоритет).
В противном случае — по первому совпадению согласно внутреннему порядку, на который можно повлиять через порядок создания бейджей или логику SQL.