This plugin is inspired by Pavilionâs fantastic work on the Question Answer Plugin. As always, thank you for your continued contributions to the Discourse project.
I am a bit of a Q&A fanatic, so Iâm excited to see this new post format available in Discourse and tickled by how⌠familiar⌠it seems! I have some questions about the functionality and how customizable it is. Much of this may be answered in the plugin package but I figure it might be helpful to have here, tooâŚ
Is there education built in for the plugin that teaches users about the feature, how/when to use it, etc? I love @discobot - maybe thereâs a tutorial/onboarding module for Q&A?
You say admins can set the default within a category to Q&A - if they do, are topics required to be Q&A or do they just default to it?
If itâs a default, is there an option to require it? Can Q&A be disabled by category, too?
If a category is set to default to Q&A, is this something thatâs apparent to users? I see that the post creation button will say itâs a Q&A but I can imagine a seasoned userâs first interaction with the newly-added feature might lead them to overlook the text without something drawing attention to the post type before itâs submitted.
Has anyone been able to limit the amount of votes per user per topic? In our case, we are running photocontests, and we would like to limit each user to 5 votes max per topic.
in âthis post I was directed to post the issue here to give the feedback.
In the thread linked above in the OpenStreetMap forum, where this plugin is used in some categories, user interface shortcomings with this plugin are discussed.
In short there are:
This plugin forbids to post a reply to a reply. It is debateable if this should be enforced or to be configurable on a per-instance basis, but it it is enabled, the following occurs:
The user can select some text and quote. The user can enter a reply. Only at the very end, when the reply is to be sent, it is aborted with an error message
An error occurred: You are not allowed to create a post in reply to another post.
This is a not really helpful message. It does not tell what is wrong. In fact, if a reply is not allowed, it should not have allowed âquote-replyâ in the first place at all.
When a reply is sent via email, the email just vanishes without the sender beeing informed. There should be a bounce with an explanatory message saying what is wrong.
Only comments are allowed. But they swallow some formatting (e.g. quotes, see the comment on âthis post), and also they are limited in numbers of characters, prohibiting more complex thoughts.
Went searching for this same thing and was surprised it hadnât been brought up before. Allowing the user to always end up in an error state with quotes and no option for markup in comments offers a very disjointed experience. Additionally, the error messaging is unclear for users when trying to directly reply to a post.
Definitely hoping to see an improvement to help polish this UX.
Within the comment rather than in a âproperâ reply? If so, I think that is intentional to keep the comments more lightweight than a full composer experience. This has been asked before (How to mention in Discourse comments, or disable commenting?), but I donât think a Feature request was submitted in the end.
I think this also. But Sam is adamant that it is a thing:
It doesnât look like there are any badges knocking around for this yet.
If you have specific badge criteria for any youâd like to create you should fire up a Data & reporting topic for each one.
I think a couple of examples could be along the lines of:
get 10 votes on a post voting reply
SELECT p.user_id, p.created_at AS granted_at, p.id AS post_id
FROM post_voting_votes pvv
JOIN posts p ON p.id = pvv.votable_id
WHERE pvv.direction = 'up'
AND p.post_number <> 1
AND (:backfill OR p.id IN (:post_ids))
GROUP BY p.user_id, p.id
HAVING COUNT(*) >=10
Or a slightly more nuanced one where you accounted for âup - downâ votes:
WITH vote_totals AS (
SELECT
p.user_id,
p.id AS post_id,
p.created_at AS granted_at,
(COUNT(*) FILTER (WHERE pvv.direction = 'up') - COUNT(*) FILTER (WHERE pvv.direction = 'down')) AS total
FROM post_voting_votes pvv
JOIN posts p ON p.id = pvv.votable_id
WHERE p.post_number <> 1
GROUP BY 1, 2
)
SELECT *
FROM vote_totals
WHERE total >= 10
AND (:backfill OR post_id IN (:post_ids))
These will need some further testing to make sure theyâre working as intended.
Though one thing to consider is that the total is dynamic so a â10â today could turn into a â5â tomorrow if more downvotes are added (for the second example). And if the badge is just based on upvotes like the first example then you may have got 10, but the UI only shows 5 when the downvotes are totalled in.