È 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.
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
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
Disabiliterò il plugin per i prossimi giorni/settimane finché il problema non sarà identificato e non verranno impedite le creazioni di nuove revisioni annuali.
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.
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).
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
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