Проблемы с бейджами, заголовками и уровнями доверия после сброса системы TL

Мы обновили уровни доверия, разблокировав все из них, но заметили, что у пользователей по-прежнему отображаются старые иконки титулы.

Я вежливо предлагаю запретить пользователям использовать значки уровней доверия, если у них нет требуемого уровня доверия для их отображения.

Я считаю, что значки должны быть динамическими, так как система уровней доверия динамична.

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

Под иконкой вы имеете в виду флейры? Что вы подразумеваете под «не группы»?

Могли бы вы предоставить скриншоты?

Если я установлю пользователю уровень доверия 3 (trust_level_3), который является группой с иконкой флейра, а флейр профиля пользователя установлен в none, иконка уровня доверия 3 всё равно автоматически устанавливается:

Используйте этот #theme-component — он работает в паре с флейрами групп.

Он добавит флейр, соответствующий достигнутому уровню доверия (TL), на изображение аватара.

Рекомендую удалить пользовательские флейры, которые вы добавили к группам уровней доверия.

Спасибо, я попробовал этот плагин, но он скорее сломал, чем исправил :stuck_out_tongue:

Проблема в значках, потому что при изменении уровней доверия старые значки остаются у племени, и это не очень хорошо.

Это ожидаемое поведение?

Значки, если это флейры, там можно выбрать…

Да, мы хотим, чтобы пользователи могли отображать значок (бейдж) своего достигнутого максимального уровня доверия.

Временное решение — убрать это, так как мы хотим показывать их вклад!

Вероятно, это можно реализовать, запретив выбор бейджей без необходимого уровня доверия (это сохранит корректность заголовков).

Спасибо за ваш ответ. Я только что отредактировал исходный пост, чтобы сделать его более понятным, и, думаю, я нашёл реальную проблему здесь.

Я полностью согласен!

Мне не кажется логичным текущее положение дел, так как я хочу, чтобы в коллекции значков отображался только текущий уровень доверия. В идеале я бы хотел, чтобы это был самый заметный значок на карточке пользователя (то есть всегда отображался в одном и том же видном месте), но не так навязчиво, как флейр аватара.

Я добился близкого к этому результата, заменив значки доверия по умолчанию на некоторые пользовательские, которые используют SQL и автоматически возвращаются к исходному состоянию. Могу поделиться ими, если хотите.

Извините, но я всё ещё не понимаю. Вы начали с фразы «Мы обновили уровни доверия, разблокировав их все» — разве это по определению не означает, что все пользователи достигли TL4, максимального уровня доверия?

У нас был заблокирован TL3. Поэтому, когда мы разблокировали уровни доверия, большинство пользователей опустились ниже (мы использовали Discord, так как люди просили об этом, и поэтому в Discourse какое-то время почти не было активности).

Это могло бы стать отличным обходным решением. Пожалуйста, поделитесь, если хотите!

Некоторые изменения происходят в результате регулярных фоновых задач. Возможно, вам придется подождать день, прежде чем изменения уровня доверия отразятся в учетных записях.

При настройке по умолчанию пользователи могут попадать в группу TL3 и покидать её. Поэтому нормально, что человек присоединяется к группе, получает значок, а позже покидает группу и теряет значок — я так полагаю.

То есть, достигнутый максимальный уровень — это TL3, но если вы потеряли TL3 из-за снижения активности, то обычно вы теряете все индикаторы того, что когда-либо имели TL3. Я так думаю.

Вы правы — SQL-запрос виден в «официальных» бейджах, и именно так это работает. Также система специально настроена так, чтобы бейджи «низших» уровней доверия оставались на месте.

Например, вот SQL-запрос для TL3:

SELECT u.id user_id, current_timestamp granted_at FROM users u
WHERE trust_level >= 3 AND (
  :backfill OR u.id IN (:user_ids)
)

Поскольку редактировать SQL в «официальных» бейджах нельзя, моим обходным решением было просто клонировать каждый официальный бейдж и заменить >= на =. Это гарантирует, что выдаётся только один бейдж (по крайней мере, после того как старый будет отозван в ходе ночной проверки).

Теперь я понимаю, что это может быть вашей реальной проблемой — что названия остаются у пользователей после того, как они потеряли уровни доверия (и бейджи, отозванные в ходе ежедневной проверки SQL). Я пока не изучал это подробно, чтобы воспроизвести проблему, но вы сняли галочку «Разрешить использовать бейдж как название» для этих случаев?

:tada: Отмечу, что это уже решено в новом эксперименте с карточкой пользователя здесь, в Meta :tada::

Это практически решает проблему с моей точки зрения. Но было бы здорово, если бы сортировка также применялась на странице /u/username/summary.

P.S.

Я отредактировал заголовок исходного сообщения, чтобы точнее отразить фокус обсуждения. Перенёс его в #feature, но затем понял, что мы пока не до конца уверены в этом (пока что) — продолжаем!

Привет! Мне это не нужно, потому что я хочу, чтобы заголовок использовался только теми, кто действительно имеет соответствующий уровень доверия.

Значки должны синхронизироваться с уровнями доверия. Они должны исчезать из профилей, когда уровень доверия утрачен.

Они есть — просто это не происходит мгновенно (отзыв работает только ночью).

Если они вообще не исчезают у вас, возможно, вам потребуется зайти в консоль Rails.

Вам, скорее всего, придется сделать это и для удаления любых оставшихся записей в поле Title. Их не должно быть сложно найти, а затем удалить содержимое поля Title для них.

Мне, безусловно, больше нравилось бы, если бы стандартные запросы для значков были настроены на отзыв устаревших значков (как в приведенном выше изменении SQL), но это, конечно, на усмотрение команды Discourse.