TL系统重置后徽章、头衔和trust_levels出现问题

我们更新了 trust_levels 并解锁了所有级别,但我们发现用户仍然拥有旧的图标标题。

我建议禁止用户使用 trust_levels 徽章,除非他们拥有所需的 trust_level 来显示它们。

我认为徽章需要动态化,因为 trust_level 系统是动态的。

这个简单的修改将解决我们面临的问题,可能还会解决更多管理员的问题,因为用户会随着时间的推移而“失去”他们的 TL。

您说的图标是指Flair吗?“不是群组”是什么意思?

可以分享截图吗?

如果我将用户设置为trust_level_3,这是一个拥有Flair图标的群组,并且用户个人资料Flair设置为,它仍然会自动设置为trust_level_3图标:

请使用此 Customization > Theme component,它可与群组头衔配合使用。

它会将你获得的最高信任级别头衔显示在头像图片上。

建议移除你添加到信任级别群组中的自定义头衔。

谢谢,我试过那个插件了,但它反而让事情变得更糟了 :stuck_out_tongue:

问题出在徽章上,因为更改信任级别后,旧徽章仍然保留在部落中,这不太好。

这是预期行为吗?

徽章(如果是Flair的话)是可选的……

是的,我们希望用户能够显示他们已达到的最高信任级别(徽章)的标题。

解决方法是删除该徽章,我们希望显示他们的贡献!

这可能可以通过禁用选择没有所需信任级别的徽章(这将使标题保持不变)来实现。

感谢您的回复。我刚刚编辑了 OP 以使其更清晰,并且我认为我在这里找到了真正的问题。

我完全同意!

现状对我来说没有意义,因为我只希望在徽章收藏中显示当前的信任等级。理想情况下,我希望它在用户卡片上也是最显眼的徽章(即始终显示在同一个突出的位置),但又不像头像装饰那样过于张扬。

我通过用一些自定义徽章替换默认的信任徽章,并使用 SQL 自动恢复,已经接近实现了这一点。如果你愿意,我可以分享它们。

抱歉,我还是不明白。您一开始说“我们更新了信任等级,解锁了所有等级”——这是否意味着,根据简单的定义,所有用户都已达到最高信任等级TL4?

我们之前锁定了 TL3。所以当我们解锁信任等级时,大多数人都降级了(因为人们要求使用 Discord,所以有一段时间 Discourse 几乎没有互动)。

这可能是一个很好的解决方法。如果您愿意,请分享!

一些情况是由于常规的后台作业造成的。您可能需要等待一天,信任级别的更改才能在账户中反映出来。

使用默认设置,人们会进入和离开 TL3。所以一个人加入小组并获得徽章,然后稍后离开小组并失去徽章是很正常的——我想。

也就是说,达到的最高级别将是 TL3,但如果您因为变得不活跃而失去了 TL3,您通常会失去您曾经拥有 TL3 的所有标志。我想。

你说得对——SQL 在“官方”徽章中是可见的,其作用正是如此。系统还特意设置为让“较低”信任等级的徽章保留一段时间。

例如,这是 TL3 的 SQL 查询:

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/用户名/summary 页面也按同样方式排序就更好了。

附注

我已编辑了原帖的标题,以更紧密地反映焦点。曾将其移至 Contribute > Feature,但后来意识到我们对此(目前)尚未明确——请继续推进!

你好,我不想要这个,因为我希望真正拥有信任等级的人使用这个头衔。

徽章需要与信任等级同步。当信任等级消失时,它们也需要从个人资料中移除。

它们是存在的——只是不是即时的(撤销只在隔夜生效)

如果它们根本没有消失,那么你可能需要进入 Rails 控制台。

你可能还需要进入那里来清理任何遗留的 Titles。识别它们或删除它们的 Title 字段内容应该不难。

我当然希望库存徽章查询能够设置为撤销被取代的徽章(如上文的 SQL 调整),但这当然取决于 Discourse 的 @team