Il plugin Yearly Review continua a creare nuovi argomenti

Ciao!

È stata creata una revisione annuale sul mio forum. L’argomento è stato rinominato e poiché il plugin di revisione annuale controlla i titoli identici per sapere se deve crearne uno nuovo, ne ha creato un altro 24 ore dopo.

Ho eliminato quello nuovo e rinominato il primo con il titolo predefinito.

Ma il plugin continua a creare nuovi argomenti dopo 24 ore.

Ecco cosa restituisce il data explorer:

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

:information_source: in realtà ne ha creati di nuovi 3 volte, forse a causa di una differenza tra una virgoletta normale e una virgoletta “fancy” [virgolette tipografiche] nel titolo, motivo per cui c’è una differenza di 3 giorni tra le date e solo 2 risultati, ma vorrei conservare solo il primo creato.

Qualche idea sul perché il plugin continui a creare argomenti nonostante ne esista già uno con il titolo predefinito e come impedirglielo? E se lo disabilitassi e riabilitassi alla fine del 2023? Creerebbe un argomento 24 ore dopo averlo riabilitato?
Inoltre, non sarebbe la soluzione più elegante, quindi vorrei sapere esattamente da dove proviene il problema :thinking:

Disabiliterò il plugin per i prossimi giorni/settimane finché il problema non sarà identificato e non verranno impedite le creazioni di nuove revisioni annuali.

Hai anche cambiato l’autore in un utente diverso?
Il codice cerca un argomento con quel titolo creato dall’utente di sistema.

Ciao!
Sono il co-admin. Ho solo cambiato il nome. Non ho cambiato l’autore.
Cosa succede se ci sono 2 argomenti con lo stesso nome e l’utente di sistema come autore? Prenderebbe l’ultimo?

Non ne “prende” uno, controlla se esiste un argomento del genere e, in caso contrario, ne creerà uno.
Se ce ne sono uno o due (o 999) non ne creerà uno nuovo.

Quindi, c’è qualcosa che non va da qualche parte perché continua a creare nuovi argomenti mentre uno esiste già :thinking:

Come ha detto @Maxence_C, è stato modificato solo il titolo, quindi l’autore è ancora @system.

Per quanto ne so, questa condizione è soddisfatta. :person_shrugging:

Hai aggiornato yearly_review.topic_title, o hai solo rinominato l’argomento?

Abbiamo appena rinominato il titolo del primo argomento della revisione annuale e poi l’abbiamo rinominato di nuovo al valore predefinito più di 24 ore dopo la sua creazione.
Non abbiamo modificato yearly_review.topic_title.

Se il titolo dell’argomento corrisponde esattamente al titolo impostato al momento della pubblicazione iniziale, la pubblicazione di nuovi argomenti di revisione dovrebbe essere impedita da questa riga:

return if Topic.where(user: Discourse.system_user, title: title).exists?

A meno che la causa del problema non sia che il titolo non corrisponde esattamente, forse il problema è correlato alla pubblicazione dell’argomento in francese. Sarebbe utile sapere cosa viene impostato come title qui quando viene eseguito il job:

title = I18n.t("yearly_review.topic_title", year: review_year)

Mi chiedo se stia cercando di confrontare il titolo inglese con il titolo francese. Il francese è la lingua predefinita sul tuo sito?

Modifica: se l’argomento viene pubblicato con un titolo francese, allora title nel codice sopra deve essere impostato in francese. Quindi è improbabile che sia la causa del problema.

Sono identici, a meno che non mi sia sfuggita una piccola differenza nei due argomenti restituiti da data explorer. Posso fornire altri dati se necessario.

Dovrei eseguirlo nella console rails o altrove?

Sì, lo è.


Riabiliterò il plugin per controllare di nuovo se riesco a raccogliere maggiori informazioni sulla prossima recensione annuale creata (se ce ne sarà una).

Bene, ho attivato manualmente il job e ha creato un argomento. Attivandolo di nuovo non verrà creata una nuova revisione annuale.

Potrei spostare le risposte dal primo argomento al nuovo ed eliminare il primo, e questo dovrebbe aggirare il problema.

Ma sono molto curioso di sapere cosa succede qui e perché i requisiti sembrano non essere soddisfatti nonostante ciò che vedo nel database.

Anch’io. Non sono sicuro di cosa stia succedendo, ma sembra che questo controllo per un argomento esistente sia un po’ inaffidabile:

return if Topic.where(user: Discourse.system_user, title: title).exists?

Mi chiedo se qualcuno del team Discourse abbia idee su come migliorarlo.

Dover disabilitare il plugin per evitare la creazione di argomenti multipli non è un ottimo approccio. Il plugin carica del CSS che viene utilizzato per stilizzare i suoi argomenti. Se il plugin è disabilitato, non credo che il CSS venga caricato.

Solo una nota: il plugin è stato aggiornato con la nuova traduzione in francese, quindi oggi ha creato un’altra nuova recensione annuale :sweat_smile:
Ho copiato il titolo di questo nuovo argomento, l’ho eliminato e ho rinominato quello originale incollando il titolo.
Vedremo se domani creerà un nuovo argomento nonostante il mio copia-incolla del titolo grezzo.

Grazie per aver dato seguito a questa questione. Affidarsi al titolo dell’argomento per evitare la creazione di più argomenti di revisione è un approccio davvero inaffidabile (è colpa mia). Una volta terminato gennaio, il problema non si ripresenterà fino all’anno prossimo. @JammyDodger, forse potresti passare una nota al team di Discourse per studiare un modo migliore per prevenire la creazione di argomenti multipli. Dovrebbe essere fatto prima di gennaio 2024. Il tempo vola :slight_smile:

Penso di poterlo fare. :slight_smile: :+1:

Solo un piccolo aggiornamento, penso che questo dovrebbe essere risolto da: :partying_face: