Badge-Abfragen über die Tabelle "badge_posts" werden für nicht-öffentliche Kategorien nicht vergeben

Einer unserer Nutzer hatte 5 „Nice Reply"-Abzeichen (100 Beiträge geliked und 100 Likes vergeben). Anschließend haben wir einige Themen in eine private Kategorie verschoben, und nun besitzt er nur noch 3 Abzeichen. Es scheint, als würde die Abzeichenabfrage die Likes, die auf den verschobenen Themen gegeben oder erhalten wurden, nicht mehr zählen – vielleicht wegen der Verschiebung oder weil die Themen jetzt privat sind.

Beim Debuggen habe ich die Abzeichenabfrage in den Data Explorer kopiert:

select p.user_id, p.id post_id, current_timestamp granted_at
from badge_posts p
where p.post_number > 1
and p.like_count >= 10

Die obige Abfrage liefert für den Nutzer nur 3 Treffer, es sollten jedoch 5 sein. Mir ist aufgefallen, dass sie die Tabelle „badge_posts" verwendet. Ich kann die Tabelle „badge_posts" in der Baumansicht des Data Explorers nicht finden. Daher habe ich „badge_posts" in „posts" geändert, und dann werden erwartungsgemäß 5 Treffer zurückgegeben.

Woher kommt die Tabelle „badge_posts", und sollte die Abzeichenabfrage nicht stattdessen die Tabelle „posts" verwenden?

1 „Gefällt mir“

That table confused me for a long time. It is defined here: discourse/lib/badge_posts_view_manager.rb at main · discourse/discourse · GitHub. It is a postgres view. My understanding of a view is that it is a name that is assigned to a query.

Posts in the badge_posts view are visible posts that are not in read restricted categories. When you moved your topics to a private category, you removed their posts from the badge_posts view.

6 „Gefällt mir“

Our private category is not all that private- you just have to accept a policy to gain access. So I would like to include posts from that category. I guess I would need to create a custom badge that looks similar to Nice Reply (and Good Reply and Great Reply), but use posts instead of badge_posts.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.