Frage-Antwort-Plugin

This was occurring on all topics, not just QnA ones. We have a ‘Questions’ category when all topics are QnA, and also have the ‘question’ tag to make a topic QnA.

The behavior is slightly different now though, before the sort order they were given fixed them at the bottom of the list, now they are still out of order, but newer posts are below them.

1 „Gefällt mir“

Thanks @AJDurant.

One of our clients experienced this issue, so I was able to take a closer look at a dataset where it was occuring. I believe one issue here might be the when topics where a QA tag is removed are handled.

I’ve started a PR that addresses this issue, which @mbcahyono and I will work on

The way to fix the issue for a specific topic is:

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

If anyone needs any more hands on help addressing this issue on their server please reach out to me privately and I can help you address it (no charge).

1 „Gefällt mir“

Sorry for not responding sooner. I’ve been traveling this week. I can confirm your code above is fixing the individual posts with issues.

I also confirmed that running the following command does NOT fix the problem

rake "posts:reorder_posts[1234]"

Is there a way to run this across all posts - basically loop over all posts?

And you’ve just run rake posts:reorder_posts by itself and it doesn’t work? Please try that again first.

If that doesn’t work you can run this

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

We have figured out what the issue is. It was introduced back in August. We’ll push a fix for it shortly, with a test for the case.

2 „Gefällt mir“

I ran the above command and got the following error

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)

I did not run the second command once I saw the duplicate key error thinking that might be a larger issue.

That looks like an issue with your db that’s independent of this, but blocking a fix here. I’ll pm you shortly and we can debug that seperately.

2 „Gefällt mir“

Thanks @angus that all seems to be working correctly now :smiley:

Running latest release and seeing the following errors.

Message (49 copies reported)

Job exception: uninitialized constant Jobs::QaUpdateTopicsPostOrder
Did you mean? 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’

Sorry for the issue. Working on it, waiting to be merged:

1 „Gefällt mir“

Cool, I’m excited to see this merged and look forward to the fix. Happy Holidays.

Welche Funktion hat die Einstellung „QnA-Eins-zu-viele-Format

1 „Gefällt mir“

Es ist eine veraltete Funktion, die wir in naher Zukunft aus dem QnA-Plugin entfernen werden. Diese Funktion ist nun in einem eigenen dedizierten Plugin enthalten

2 „Gefällt mir“

Wie entfernt man seine Stimme? In den Optionen gibt es eine Einstellung, wie viel Zeit man hat, um die Stimme zurückzunehmen, aber ich sehe keine Möglichkeit, dies tatsächlich zu tun.

1 „Gefällt mir“

Gibt es gute Beispiele für die Verwendung dieses Plugins im echten Einsatz? Ich würde es gerne in Aktion sehen!

Wählen Sie den gelben Text „Stimme zurücknehmen“ aus – siehe Screenshot unten.

Mir sind einige Feedbackpunkte aufgefallen:

  1. Das Hoch-Icon zum Abgeben einer Stimme berücksichtigt das dunkle Theme nicht (siehe Screenshot)
  2. Die Platzierung meines Flairs bei Kommentaren zu Antworten ist falsch (siehe Screenshot)
  3. Das Styling des Informationsbuttons ist nicht schlecht, passt aber nicht wirklich zum Rest der Seite und nimmt etwas horizontalen Platz in Anspruch. Vielleicht wäre ein anderer Ansatz besser, z. B. ein kleiner Textlink in der oberen rechten Ecke oder neben der Kategorie und dem Tag?
  4. Der Link „Stimme zurücknehmen“ ist nicht offensichtlich als Link erkennbar
  5. Die Admin-Einstellung qa trust level vote limits ist standardmäßig deaktiviert, aber ich erhalte trotzdem die Fehlermeldung „Sie können die Anzahl der Stimmen für Ihr Vertrauenslevel nicht überschreiten“, was keinen Sinn ergibt?
  1. Gibt es nur einen „Kommentar"-Button beim ersten Beitrag, und wird dieser Button bei den Antworten unten nicht angezeigt?

Ist das beabsichtigt oder liegt ein Fehler in meinem Theme vor?

  1. Das Hochstimmen ist nicht korrekt ausgerichtet. Ich denke, das ließe sich per CSS beheben (ich werde es versuchen).

Danke!

Können wir die normale Reihenfolge der Beiträge wiederherstellen, indem wir das Plugin deinstallieren?

Ich sehe, dass der zuvor gemeldete Fehler unsere Gespräche wirklich durcheinandergebracht hat :neutral_face:

Ja, es scheint einen Konflikt zwischen diesem Plugin und dem Solved Plugin zu geben, also dem „Lösung"-Element in deinem Screenshot. Dieses Plugin unterstützt das Solved Plugin noch nicht offiziell.

Ja, du musst das Plugin nur in einer Kategorie deaktivieren, in der es aktiviert ist, und die Beiträge kehren in ihre normale Reihenfolge zurück.

1 „Gefällt mir“

Vielen Dank für dieses Plugin! Eine Frage: Was passiert mit den Inhalten, wenn das Plugin entfernt wird? Es ist klar, dass die Stimmen und die spezielle Sortierung der Antworten wegfallen, aber was passiert mit den “Antworten” und “Kommentaren” zu jeder Antwort? Bleiben sie erhalten oder werden sie gelöscht?

Der Grund für meine Frage ist, dass wir dieses Plugin begonnen haben, um eine kollaborative Benutzeranleitung zu erstellen. Kommentare zu jeder Antwort sind sehr praktisch. Die Stimmen sind ebenfalls vielversprechend, aber was, wenn sie unbeabsichtigte Folgen haben und wir sie loswerden wollen? Es wäre schade, die Anleitung zu verlieren, nur weil wir die Stimmen entfernen wollen.

Im schlimmsten Fall könnten wir die Abstimmungs-UI per CSS entfernen und das Plugin dort belassen.

1 „Gefällt mir“

Gute Frage.

Kommentare und Antworten sind nur Beiträge, die in einer anderen Reihenfolge angezeigt werden. Sie werden beibehalten.

Wenn Sie das Plugin deinstallieren möchten, deaktivieren Sie einfach „Alle Themen in dieser Kategorie als QnA markieren“ in den Kategorieeinstellungen. Dadurch werden alle Beiträge in ihre ursprüngliche Reihenfolge zurückversetzt.

Zum Beispiel habe ich gerade die QnA-Kategorie auf try.thepavilion.io in ihre Standardreihenfolge zurückversetzt (d. h. chronologisch (wird sich in 24 Stunden wieder ändern).

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

2 „Gefällt mir“

Das ist ermutigend zu wissen. Wir werden das Plugin ausprobieren, und wenn die Stimmen ihre Mission nicht erfüllen, haben wir zwei Möglichkeiten, sie zu entfernen: die leichte über CSS und die schwere durch Deaktivieren des Plugins. Keine Inhalte gehen verloren. Tolle Anpassung der Discourse-Kernkomponenten!

Übrigens, nur für den Fall, dass Sie neugierig sind, wir verwenden Ihr Plugin, um eine kollaborative Videoanleitung für ein Produkt zu erstellen, bei der Leute eingeladen werden, Links zu Videos zu teilen, die andere über Aspekte dieses Produkts erstellt haben. Wir haben ein paar Labels angepasst, damit es funktioniert. Sehen Sie Bitwig Video Guide - Bitwish (wir haben gerade erst angefangen, daher ist es größtenteils leer; außerdem sind die meisten Unterkategorien stummgeschaltet, weshalb es für anonyme Benutzer leerer aussieht).

3 „Gefällt mir“