Gelöste Anzahl in Zusammenfassung zeigt falsche Werte an

Hallo zusammen,

nachdem wir unsere Discourse-Instanz aktualisiert haben, scheinen wir falsche Lösungsanzahlen in den Profilzusammenfassungen anzuzeigen. Beispiel:

Ich habe bereits bemerkt, dass es in letzter Zeit einige Änderungen gab, darunter ein schwerwiegender Fehler:

Die korrekten Mengen sind offensichtlich noch verfügbar, also gab es wahrscheinlich etwas, das während der Migration der Daten in die neuen Tabellen passiert ist?

1 „Gefällt mir“

Danke für Ihre Nachricht. Ich werde es mir ansehen.

1 „Gefällt mir“

In Discourse gibt es einige Unstimmigkeiten bei der Zählung von Lösungen, bei denen wir bereits gelöschte Themen und Beiträge mitgezählt haben.

Vor der Migration haben wir angegeben:

John hat 27 Lösungen, weil seine Beiträge 27 Mal als Lösung markiert wurden.

Dies wird in der Tabelle „UserActions“ gespeichert.

Nach der Migration zählen wir nun:

John hat 20 Lösungen, weil es 20 Themen gibt, bei denen seine Beiträge Lösungen sind.

Dies wird in der Tabelle „SolvedTopics“ gespeichert und hat eine direkte Verknüpfung zu einem vorhandenen, nicht gelöschten Thema.

Hier gibt es einen feinen Unterschied: Im ersten Szenario gab es keine Validierungen, ob der Lösungsbeitrag oder sein Thema noch existieren.

Ich werde mich mit unserem Team abstimmen, welche Zahl besser angezeigt werden soll. Persönlich neige ich dazu, Lösungen für Themen zu zählen, die noch existieren.

3 „Gefällt mir“

Ich bin ziemlich sicher, dass dies nicht das Problem sein kann – da dies in einigen Fällen nur zu weniger Zahlen und nicht zu mehr führen würde, oder? Hier ist ein weiteres Beispiel für Sie:
-> Falsch: Profile - SGS - Garuda Linux Forum
-> Richtig:
Das Bild zeigt einen Benutzerprofilbereich, aus dem hervorgeht, dass der Benutzer am 15. April 2020 beigetreten ist, 600 Stunden Inhalte gelesen hat und vor 4 Stunden gepostet hat, mit einer aktuellen Serie von 5 aufeinanderfolgenden Tagen. (Beschriftet von KI)

Es scheint mir unmöglich, dass dieser Zählmechanismus die Anzahl der gelösten Beiträge mehr als verdoppeln würde. Außerdem (natürlich unbestätigt) bezweifle ich stark, dass die Anzahl der gelöschten Beiträge in meinem vorherigen Beispiel so hoch war.

Danke!

Hmmm ja, 485 und 90 liegen zu weit auseinander.

Ich glaube, ich habe gerade den Fehler gefunden (obwohl die Aussage über die Diskrepanz, die ich oben erwähnt habe, immer noch zutrifft) –

In der vorherigen Implementierung wird die Anzahl der Lösungen in Johns Zusammenfassung anhand der Anzahl der Male gezählt, die jemand Johns Beitrag als Lösung markiert hat.

  def solved_count
    UserAction.where(user: @user).where(action_type: UserAction::SOLVED).count
  end

In der neuen Implementierung ist die Anzahl der Lösungen in Johns Benutzersusammenfassung die Anzahl der Male, die John einen Beitrag als Lösung markiert hat.

  def solved_count
    DiscourseSolved::SolvedTopic.where(accepter: @user).count
  end

Dies erklärt den großen Unterschied. Die Definition von “gelöste Anzahl” hat sich von “wie oft du geantwortet hast” zu “wie oft du akzeptiert hast” geändert.

Ich werde den Fehler beheben, danke nochmals für den Bericht!

Ich werde auch die unterschiedlichen Zählmethoden im Profil-Popup und in der Benutzersusammenfassung aktualisieren.

4 „Gefällt mir“

Props an @ondrej, dass er mir auch Solution badge not working? erwähnt hat. Es scheint, dass es schon vor dieser Migration einige Unstimmigkeiten gab. Gut ist, dass wir zu einer konsistenteren Zahl über Discourse und unsere Plugins hin migrieren werden.

4 „Gefällt mir“

Wunderbar, vielen Dank! :slight_smile:

4 „Gefällt mir“

Dies ist jetzt behoben und standardisiert - FIX: Standardise the definition of what a solution is by nattsw · Pull Request #352 · discourse/discourse-solved · GitHub

4 „Gefällt mir“

Dieses Thema wurde nach 2 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.