子分类未获得抄写员徽章

你好。:waving_hand:

我想我在 Meta 这里发现了一个 Discourse 的 bug。

我在 #documentation:users 中发布了 https://meta.discourse.org/t/an-overview-of-features-in-discourse-chat/239695,而 Meta 因为我在 Documentation 中发布主题授予了“抄写员”(Scribe)徽章——但我并没有这个徽章。这一点我敢肯定,以下是我的推测,虽然我觉得合理,但也可能是错的。

为方便查看的 Scribe 徽章截图

(如果你好奇“抄写员”徽章是否定期批量颁发——想法不错;我自己也曾这么想过。不过已经过去两周多了,所以我认为可以排除这种可能性。)

当我发布主题时——或者至少是尝试发布时——系统通知我该主题将被保留待审核。回顾主帖的修订历史,@mcwumbly(顺便说一句,名字和头像都很棒)实际上被认定为第一版修订的作者。我推测这是他在帖子正式进入 Documentation 分类之前所做的编辑导致的。

因此,似乎发生的情况是:Discourse 将管理员所做的任何更改视为第 1 版修订,而不是第 2 版及以后的修订,这干扰了在特定分类中发布主题时的徽章分配——Discourse 搞错了作者,因为它查看的是错误的修订版本。

如果当前的行为虽然对某些特定徽章来说令人遗憾,但从整体逻辑上讲是合理的,那么这个问题可能会被标记为“不予修复”(WONTFIX)。在这种情况下,如果我冒昧地在此添加一些 Contribute > Site feedback,那么如果“抄写员”徽章实际上对在此注册的 99% 以上的用户来说无法获得,或许值得重新考虑该徽章的设置。

除非分配此类徽章的代码能够以某种方式规避这一行为。我知道 Discourse 是开源的,但我一直不太擅长 Ruby,抱歉。

我认为这可能是因为 Scribe 徽章的 SQL 需要更新,以包含子类别,而不仅仅是父类别。我们在上周进行的徽章审查中内部曾提到过这一点,但由于 Documentation 类别正在进行一些结构重组,所以尚未更新。不过我认为现在它已经相当稳定了,我计划在本周做出更改。:crossed_fingers:

在此期间,我会将其移至 Contribute > Site feedback,不过如果你能在自己的站点上复现审批队列中的这个特殊情况,我们随时可以将其移回。:+1:

4 个赞

这个有一个小更新:我昨天将子类别添加到了查询中,并且(到目前为止)一切正常。 :partying_face: :slightly_smiling_face: 我认为现在应该可以按预期“工作”了。 :crossed_fingers:

此主题在上次回复后 24 小时自动关闭。不再允许回复。