Risposte nel thread visualizzate fuori ordine

Dopo l’aggiornamento recente alla versione 2.6.0.beta3, alcune risposte in vari thread vengono visualizzate in ordine errato. I timestamp sono corretti, ma le risposte interessate appaiono sempre in fondo al thread.

Ho provato ad aggiornare nuovamente ed eseguire rake posts:reorder_posts sui thread interessati, ma senza alcun effetto. C’è qualcosa altro che posso fare per farle riordinare correttamente? O si tratta di un bug in Discourse? I post vengono visualizzati allo stesso modo per tutti gli utenti.

Un esempio da uno dei thread, ecco la parte inferiore del thread:

1 Mi Piace

Per caso hai spostato gli ultimi 2 post in quel thread? In tal caso, è il comportamento atteso.

2 Mi Piace

No, erano sempre in quell’argomento e, prima dell’aggiornamento, erano nell’ordine previsto delle risposte.

Questo non riguarda solo un argomento, ma sembra interessarli tutti. Ci sono una o due risposte alla fine che non dovrebbero esserci.

2 Mi Piace

Ho avuto lo stesso problema.

No, non sposto i post nel topic, ma le risposte nel thread appaiono in ordine errato.

Eseguendo la query da posts:reorder_posts si nota che l’sort_order di diversi post è anomalo; sembra che il rake dovrebbe aggiornarli, ma non lo fa.


Dall’esecuzione di:

SELECT
id,
post_number,
sort_order,
ROW_NUMBER() OVER (
    PARTITION BY
    topic_id
    ORDER BY
    created_at,
    post_number
) AS new_post_number
FROM
posts

Nel tentativo di ricreare manualmente il task rake, ho eseguito:

WITH ordered_posts AS (
  SELECT
    id,
    ROW_NUMBER() OVER (
      PARTITION BY
        topic_id
      ORDER BY
        created_at,
        post_number
    ) AS new_post_number
  FROM
    posts
  /*where*/
)
SELECT
  p.post_number,
  p.sort_order,
  o.new_post_number
FROM
  posts AS p, ordered_posts AS o
WHERE
  p.id = o.id

ottenendo come risultato:

Questo spiega perché il task rake non fa nulla: pensa che non ci sia nulla da fare… Il task rake ha un’ulteriore condizione where che confronta post_number con new_post_number, e non sort_order.

Ora ho eseguito manualmente sul database:

WITH ordered_posts AS (
  SELECT
    id,
    ROW_NUMBER() OVER (
      PARTITION BY
        topic_id
      ORDER BY
        created_at,
        post_number
    ) AS new_post_number
  FROM
    posts
  /*where*/
)
UPDATE
  posts AS p
SET
  sort_order = o.new_post_number
FROM
  ordered_posts AS o
WHERE
  p.id = o.id AND
  p.sort_order <> o.new_post_number

e ora i post appaiono nell’ordine corretto.

2 Mi Piace

Non capisco ancora come tu sia finito in questo stato, l’unico posto in cui interveniamo su questo è quando sposti i post.

Il creatore del post imposta semplicemente sort_order su post_number

A lungo termine non sono nemmeno sicuro di voler mantenere la colonna sort_order, sembra essere una sorta di trappola.

Sono coinvolti dei plugin qui?

Neanch’io capisco, non ho trovato alcuna ragione a riguardo esaminando il codice. Sembra che qualcosa modifichi l’ordine di ordinamento, ma non riesco a vedere cosa.

Pensavo che si fossero disordinati quando ho eseguito un aggiornamento, poiché i messaggi disordinati erano generalmente molto più vecchi e in precedenza apparivano in un punto previsto. Quando ho eseguito il SQL sopra, sembrava tutto a posto, ma poi l’altra settimana anche un paio di nuovi post sono apparsi disordinati. Credo che i post interessati siano sempre risposte a un altro post. Ad esempio:

Abbiamo installati i seguenti plugin:

Immagino che question-answer modifichi l’ordine di ordinamento, ma ciò dovrebbe riguardare solo gli argomenti di tipo domanda, non quelli generali.

Ho lo stesso problema. In passato ho riscontrato errori 502 quando spostavo i post a causa di topic lunghi; non sono sicuro che abbia a che fare con questo. Ho anche installato il plugin per le domande e risposte, ma vedo ancora i post apparire in fondo ai topic dopo averlo disabilitato.

Molto probabilmente, questo non è un plugin realmente supportato o ufficiale; l’ordine di ordinamento (sort_order) viene utilizzato in modo incoerente nel core di Discourse e stiamo valutando di rimuovere questa colonna.

Sposto questo messaggio in Support perché lo considero un bug in un plugin non ufficiale.

@angus Puoi dare un’occhiata a questo problema? Ho installato questo plugin e le risposte sono iniziate ad apparire in ordine sbagliato per tutto il sito. Ho appena rimosso il plugin, ma le risposte continuano ad apparire in ordine sbagliato.

Ho eseguito un test su un singolo post per verificare se il seguente comando correggesse le risposte fuori ordine in un post (dopo aver rimosso il plugin Q&A).

rake posts:reorder_posts[1896]

Purtroppo i post continuano a essere visualizzati in ordine errato.

Ciao, ci dispiace che tu abbia riscontrato questo problema. Per favore, pubblica eventuali aggiornamenti qui: Question Answer Plugin. @mbcahyono o io risponderemo a breve. Questa non è una domanda generica di supporto per Discourse.

2 Mi Piace