Plugin Risposta alle Domande

Ciò si verificava in tutti gli argomenti, non solo in quelli QnA. Abbiamo una categoria ‘Domande’ in cui tutti gli argomenti sono QnA e utilizziamo anche il tag ‘domanda’ per rendere un argomento QnA.

Il comportamento è leggermente diverso ora: prima, l’ordine di ordinamento li posizionava fisso in fondo all’elenco; ora sono ancora fuori ordine, ma i post più recenti si trovano sotto di essi.

1 Mi Piace

Grazie @AJDurant.

Uno dei nostri clienti ha riscontrato questo problema, quindi sono stato in grado di esaminare più da vicino un dataset in cui si verificava. Credo che uno dei problemi possa riguardare il modo in cui vengono gestiti i topic da cui viene rimossa un’etichetta QA.

Ho avviato una PR che affronta questo problema, su cui @mbcahyono e io lavoreremo

Per risolvere il problema per un topic specifico:

./launcher enter app
rails c
topic = Topic.find(<topic_id>) 
topic.posts.each { |p| p.update_columns(sort_order: p.post_number) }

Se qualcuno ha bisogno di ulteriore assistenza pratica per risolvere questo problema sul proprio server, contattatemi in privato e sarò felice di aiutarvi (gratuitamente).

1 Mi Piace

Scusa per non aver risposto prima. Questa settimana sono stato in viaggio. Posso confermare che il tuo codice sopra sta risolvendo i singoli post con problemi.

Ho anche confermato che eseguire il seguente comando NON risolve il problema

rake "posts:reorder_posts[1234]"

C’è un modo per eseguirlo su tutti i post, ovvero iterare su tutti i post?

E hai appena eseguito rake posts:reorder_posts da solo e non funziona? Per favore, riprova prima.

Se non funziona, puoi eseguire questo

./launcher enter app
rails c
Post.update_all("sort_order = post_number")

Abbiamo individuato il problema. È stato introdotto ad agosto. Rilascieremo presto una correzione, includendo anche un test per questo caso.

2 Mi Piace

Ho eseguito il comando sopra e ho ottenuto il seguente errore

root@REMOVE-web-only:/var/www/discourse# rake posts:reorder_posts
rake aborted!
PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "post_timings_unique"
DETAIL:  Key (topic_id, post_number, user_id)=(1567, 20, 3) already exists.
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.2.0/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.2.0/lib/patches/db/pg.rb:110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mini_sql-0.3/lib/mini_sql/postgres/connection.rb:201:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mini_sql-0.3/lib/mini_sql/postgres/connection.rb:173:in `exec'
/var/www/discourse/lib/tasks/posts.rake:368:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/posts.rake:351:in `each'
/var/www/discourse/lib/tasks/posts.rake:351:in `block (2 levels) in <main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/lib/tasks/posts.rake:312:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => posts:reorder_posts
(See full trace by running task with --trace)

Non ho eseguito il secondo comando dopo aver visto l’errore di chiave duplicata, pensando che potesse trattarsi di un problema più grave.

Sembra che ci sia un problema con il tuo database, indipendente da questo, ma che blocca la correzione qui. Ti invierò un messaggio privato a breve e potremo risolvere il problema separatamente.

2 Mi Piace

Grazie @angus, sembra che ora tutto funzioni correttamente :smiley:

Eseguendo l'ultima release e rilevando i seguenti errori.

Messaggio (49 copie riportate)

Eccezione del job: costante Jobs::QaUpdateTopicsPostOrder non inizializzata
Intendevi? Jobs::UpdateTopicPostOrder
Jobs::QAUpdateTopicsPostOrder

Backtrace

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:284:in const_get' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:284:in block in constantize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:280:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:280:in inject’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:280:in constantize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/core_ext/string/inflections.rb:68:in constantize’
/var/www/discourse/app/jobs/base.rb:288:in enqueue' /var/www/discourse/app/jobs/onceoff/onceoff.rb:40:in block in enqueue_all’
/var/www/discourse/app/jobs/onceoff/onceoff.rb:37:in each' /var/www/discourse/app/jobs/onceoff/onceoff.rb:37:in enqueue_all’

Scusa per il problema. Sto lavorando alla soluzione, in attesa di essere unita:

1 Mi Piace

Fantastico, sono entusiasta di vederlo unito e non vedo l’ora che venga risolto. Buone feste.

Qual è la funzione dell’impostazione “Formato QnA uno-a-molti” che si trova nelle impostazioni della categoria?

1 Mi Piace

È una funzionalità deprecata, che rimuoveremo dal plugin QnA a breve. Questa funzionalità ora ha il proprio plugin dedicato

2 Mi Piace

Come si rimuove il proprio voto? Nelle opzioni c’è una configurazione per indicare quanto tempo hai per annullare il voto, ma non vedo un modo per farlo effettivamente.

1 Mi Piace

Ci sono esempi validi di questo plugin in uso sul campo? Mi piacerebbe vederlo all’opera!

Seleziona il testo giallo “Annulla il tuo upvote” - vedi lo screenshot qui sotto.

Ho notato alcuni punti di feedback:

  1. L’icona su per votare non rispetta il tema scuro (vedi screenshot)
  2. Il posizionamento del mio flair sui commenti alle risposte non è corretto (vedi screenshot)
  3. Lo stile del pulsante informazioni non è male, ma non si armonizza davvero con il resto della pagina e occupa spazio orizzontale. Forse un approccio diverso, ad esempio un piccolo link di testo nell’angolo in alto a destra o accanto a categoria e tag, funzionerebbe meglio?
  4. Il link “Annulla il tuo upvote” non è chiaramente riconoscibile come un link
  5. L’impostazione amministrativa qa trust level vote limits è deselezionata di default, ma ricevo comunque l’errore “Non puoi superare il numero di voti consentiti per il tuo livello di fiducia”, il che non ha senso?
  1. C’è solo un pulsante ‘Commenta’ sul primo post e le risposte non mostrano quel pulsante in basso?

È previsto dal design o c’è un bug nel mio tema?

  1. Il voto positivo è disallineato; penso che si possa risolvere con il CSS (proverò a farlo).

Grazie!

Possiamo ripristinare l’ordine normale dei post disinstallando il plugin?

Vedo che il bug segnalato in precedenza ha davvero sconvolto le nostre conversazioni :neutral_face:

Sì, sembra esserci un conflitto tra questo plugin e il Plugin Risolto, ovvero l’elemento “Soluzione” nello screenshot. Questo plugin non supporta ancora ufficialmente il Plugin Risolto.

Sì, devi solo disabilitare il plugin in una categoria in cui è abilitato e i post torneranno al loro ordine normale.

1 Mi Piace

Grazie per questo plugin! Una domanda, cosa succede ai contenuti se il plugin viene rimosso? È chiaro che i voti e l’ordinamento speciale delle risposte scompariranno, ma cosa succederebbe alle “risposte” e ai “commenti” per ogni risposta? Rimarranno o scompariranno?

Il motivo per cui chiedo è che abbiamo iniziato a utilizzare questo plugin per creare una guida utente collaborativa. Avere commenti per ogni risposta è molto comodo. Anche i voti sono promettenti, ma cosa succede se arrivano con conseguenze indesiderate e vogliamo sbarazzarcene? Sarebbe un peccato perdere la guida perché vogliamo rimuovere i voti?

Nel peggiore dei casi, immagino che potremmo rimuovere l’interfaccia utente dei voti tramite CSS, mantenendo il plugin attivo.

1 Mi Piace

Ottima domanda.

Commenti e risposte sono solo post che appaiono in un ordine diverso. Verranno conservati.

Se desideri disinstallare il plugin, deseleziona semplicemente “Rendi tutti gli argomenti di questa categoria QnA” nelle impostazioni della categoria. Questo ripristinerà tutti i post nel loro ordine originale.

Ad esempio, ho appena ripristinato la categoria QnA su try.thepavilion.io al suo ordine standard (cioè cronologico (tornerà tra 24 ore)).

https://try.thepavilion.io/t/whats-it-like-to-be-a-bat/22

2 Mi Piace

Ok, sapere questo è incoraggiante. Proveremo il plugin e se i voti non compiranno la loro missione allora avremo due opzioni per rimuoverli: quella leggera tramite CSS e quella pesante disabilitando il plugin. Nessuna perdita di contenuto. Ottimo adattamento dei componenti core di Discourse!

A proposito, giusto nel caso siate curiosi, stiamo usando il vostro plugin per creare una guida video collaborativa di un prodotto, dove le persone sono invitate a collegare video che le persone hanno creato su aspetti di questo prodotto. Abbiamo personalizzato un paio di etichette per farlo funzionare. Vedi Bitwig Video Guide - Bitwish (abbiamo appena iniziato, quindi è per lo più vuoto; inoltre, la maggior parte delle sottocategorie sono silenziate ed è per questo che sembra più vuoto per gli utenti anonimi).

3 Mi Piace