Возможно ли автоматически добавить значок пользователю, который решил не менее 100 задач?
Плагин Solved уже включает значки за 1, 10, 50 и 150 решений — вам нужно просто включить их: https://meta.discourse.org/t/discourse-solved/30155#solved-badges-9
Однако, чтобы создать значок за 100 решений, вы можете скопировать SQL-запрос одного из существующих, изменить пороговое значение и добавить его обратно как новый пользовательский значок, активируемый по SQL. Подробнее об этом читайте здесь: Creating triggered custom badge queries, а также о том, как его включить, здесь: Enable Badge SQL.
Спасибо за ваш ответ, теперь я всё понял ![]()
Но когда я тестирую этот запрос:
SELECT post_id, user_id, created_at AS granted_at
FROM (
SELECT p.id AS post_id, p.user_id, pcf.created_at,
ROW_NUMBER() OVER (PARTITION BY p.user_id ORDER BY pcf.created_at) AS row_number
FROM post_custom_fields pcf
JOIN badge_posts p ON pcf.post_id = p.id
JOIN topics t ON p.topic_id = t.id
WHERE pcf.name = 'is_accepted_answer'
AND p.user_id <> t.user_id -- игнорировать темы, решённые автором (OP)
AND (:backfill OR p.id IN (:post_ids))
) x
WHERE row_number = 100
Результат такой:
Только 2 значка для 2 пользователей, но я знаю, что у другого пользователя больше 100, и он не отображается в результатах запроса…
Но у этого пользователя 106 решений:
Ещё один вопрос: можно ли изменить текст для моего языка? Я не понимаю, как это сделать.
Запрос для значков не учитывает собственные решения или решения из удалённых тем, тогда как запрос для каталога в настоящее время их учитывает. Это может привести к небольшому расхождению в подсчётах.
Вы можете обновить текст решённых значков, выполнив поиск по badges.solved в ваших пользовательских текстах. Это покажет все соответствующие поля: ![]()
/admin/customize/site_texts?q=badges.solved
Что вы имеете в виду под «самообслуживанием»?
Спасибо за обновление, текст в порядке ![]()
Вот эта строка:
Она исключает любые решения, если решение дано человеком, создавшим тему.
Ок, спасибо ![]()

