Auf meinem Forum wurde eine jährliche Überprüfung erstellt. Das Thema wurde umbenannt, und da das Plugin für die jährliche Überprüfung nach identischen Titeln sucht, um zu wissen, ob es eine neue jährliche Überprüfung erstellen muss, hat es 24 Stunden später eine weitere erstellt.
Ich habe die neue gelöscht und die erste mit dem Standardtitel umbenannt.
Aber das Plugin erstellt weiterhin nach 24 Stunden neue Themen.
Hier ist, was der Daten-Explorer zurückgibt:
SELECT created_at, title, fancy_title
FROM topics
WHERE title like '%2022%année en cours de révision%'
AND deleted_at IS NULL
ORDER BY created_at DESC
created_at
title
fancy_title
2023-01-04T14:52:19.345Z
2022 : l'année en cours de révision
2022 : l’année en cours de révision
2023-01-01T10:09:20.503Z
2022 : l'année en cours de révision
2022 : l’année en cours de révision
Es hat tatsächlich 3 Mal neue erstellt, vielleicht wegen eines Unterschieds zwischen einem Anführungszeichen und einem schicken Anführungszeichen[1] im Titel, weshalb ich es tun musste, daher der 3-tägige Datumsunterschied und die nur 2 Ergebnisse, aber ich möchte nur das zuerst erstellte behalten.
Haben Sie eine Idee, warum das Plugin weiterhin Themen erstellt, obwohl bereits eines mit dem Standardtitel vorhanden ist, und wie kann ich es daran hindern? Was ist, wenn ich es deaktiviere und Ende 2023 wieder aktiviere? Wird es 24 Stunden nach der Reaktivierung ein Thema erstellen?
Außerdem wäre das nicht die eleganteste Lösung, daher möchte ich wissen, wo genau das Problem liegt
Ich werde das Plugin für die nächsten Tage/Wochen deaktivieren, bis das Problem identifiziert und die Erstellung neuer jährlicher Überprüfungen verhindert ist.
Hallo!
Ich bin der Co-Admin. Ich habe nur den Namen geändert. Ich habe den Autor nicht geändert.
Was passiert, wenn es 2 Themen mit demselben Namen und demselben Systembenutzer als Autor gibt? Würde es das letzte nehmen?
Es „nimmt“ keines, es prüft, ob ein solches Thema existiert, und wenn nicht, wird eines erstellt.
Wenn es eins oder zwei (oder 999) gibt, wird kein neues erstellt.
Wir haben gerade den Titel des ersten jährlichen Überprüfungsthemas umbenannt und ihn dann mehr als 24 Stunden nach seiner Erstellung wieder in den Standardnamen zurückbenannt.
Wir haben yearly_review.topic_title nicht geändert.
Wenn der Titel des Themas eine exakte Übereinstimmung mit dem Titel ist, der beim erstmaligen Veröffentlichen des Themas festgelegt wurde, sollte das Veröffentlichen neuer Überprüfungsthemen durch diese Zeile verhindert werden:
return if Topic.where(user: Discourse.system_user, title: title).exists?
Es sei denn, die Ursache des Problems ist, dass der Titel keine exakte Übereinstimmung ist. Vielleicht hängt das Problem damit zusammen, dass das Thema auf Französisch veröffentlicht wird. Es wäre hilfreich zu wissen, was hier als title gesetzt wird, wenn der Job ausgeführt wird:
title = I18n.t("yearly_review.topic_title", year: review_year)
Ich frage mich, ob versucht wird, den englischen Titel mit dem französischen Titel abzugleichen. Ist Französisch die Standard-Locale auf Ihrer Website?
Bearbeiten: Wenn das Thema mit einem französischen Titel veröffentlicht wird, dann muss title im obigen Code auf Französisch gesetzt werden. Das ist also unwahrscheinlich die Ursache des Problems.
Sie sind identisch, es sei denn, ich habe einen winzigen Unterschied in den beiden von Data Explorer zurückgegebenen Themen übersehen. Ich kann bei Bedarf weitere Daten bereitstellen.
Soll ich das in der Rails-Konsole oder woanders ausführen?
Ja, das ist es.
Ich werde das Plugin wieder aktivieren, um zu prüfen, ob ich beim nächsten erstellten Jahresrückblick (falls es einen gibt) weitere Informationen sammeln kann.
Nun, ich habe den Job manuell ausgelöst, und er hat ein Thema erstellt. Wenn ich ihn erneut auslöse, wird keine neue jährliche Überprüfung erstellt.
Ich könnte die Antworten aus dem ersten Thema in das neue verschieben und das erste löschen, und das sollte das Problem umgehen.
Aber ich bin sehr neugierig, was hier passiert und warum die Anforderungen trotz dessen, was ich in der Datenbank sehe, nicht erfüllt zu sein scheinen.
Ich auch. Ich bin mir nicht sicher, was vor sich geht, aber es scheint, dass diese Prüfung auf ein vorhandenes Thema etwas unzuverlässig ist:
return if Topic.where(user: Discourse.system_user, title: title).exists?
Ich frage mich, ob jemand aus dem Discourse-Team Ideen hat, wie man es verbessern könnte.
Das Deaktivieren des Plugins, um die Erstellung mehrerer Themen zu verhindern, ist kein guter Ansatz. Das Plugin lädt einige CSS, die zum Stylen seiner Themen verwendet werden. Wenn das Plugin deaktiviert ist, glaube ich nicht, dass das CSS geladen wird.
Nur eine Anmerkung: Das Plugin wurde mit der neuen französischen Übersetzung aktualisiert, daher wurde heute eine weitere neue Jahresübersicht erstellt
Ich habe den Titel dieses neuen Themas kopiert, es gelöscht und das Original umbenannt, indem ich den Titel eingefügt habe.
Wir werden sehen, ob morgen trotz meines Kopierens und Einfügens des rohen Titels ein neues Thema erstellt wird.
Danke für die Nachverfolgung. Sich auf den Titel des Themas zu verlassen, um die Erstellung mehrerer Review-Themen zu verhindern, ist ein sehr wackeliger Ansatz (das ist meine Schuld.) Sobald Januar endet, wird das Problem bis nächstes Jahr nicht mehr auftreten. @JammyDodger, vielleicht könnten Sie eine Notiz an das Discourse-Team weitergeben, um nach einer besseren Möglichkeit zu suchen, die Erstellung mehrerer Themen zu verhindern. Das sollte vor Januar 2024 erledigt sein. Die Zeit vergeht wie im Flug