Discourse Post Sorting Customizer

The discourse-post-sorting-customizer allows user to sort the topic posts based on 3 variants active, oldest, and likes

Installation
Install the plugin by following the Install Plugin instructions. The plugin’s repository address is
https://github.com/jahan-ggn/discourse-post-sorting-customizer

About

  1. Active: allows user to sort the posts that are answered recently
  2. Oldest: allows user to sort the posts that were answered long ago
  3. Likes: allows user to sort the posts based on likes that are being on posts

Note
By default, the plugin is disabled, to make use of the plugin the site administrator has to enable the plugin through a site setting named discourse_post_sorting_customizer_enabled

10 Likes

@angus any thoughts to use it in Question Answer plugin?

2 Likes

Nice work! Yes, I guess you could use it with the question answer plugin. I’m guessing you based the lists “Active”, “Oldest” and “Likes” on the similar post list sorting options in StackOverflow? Have you tested it out with the QnA plugin? Is there a community who needs this right now? It’d be good to see this in a real community first.

6 Likes

Yes, I have tested with the QnA plugin it is working properly but there it will be required separately to decorate answer count for a perfect view that’s it

3 Likes

Now the plugin is compatible with the discourse-solved plugin. When the user will select the post sorting variant and the topic has a post as a solution then it will showed first then rest of the posts will be sorted according to the sorting variant selected by the user.

5 Likes

@jahan_gagan Thank you for this great plugin. This is very helpful for users to sort a large amount of replies and find what he wants.

Will it possible to make plugin category specific? only works in certain categories?
Also, does it make sense to add a feature to sort the posts by “users I liked” or “users I followed”?
“user follow” is a plugin angus developed. I think “users I liked” is sufficient. Thanks.

1 Like

This seems like a very useful set of options to have, especially to sort by oldest. I’d love to see that in core, really.

In the meantime, before I adopt and start depending on this plugin, I wanted to ask if any of the layout changes being made in core are likely to affect this plugin. I ask because it hasn’t been updated in over a year, so I just want to make sure it would be updated/fixed if any problems show up. :pray:

2 Likes

I’m excited to try this out. I’m also curious how easy you think it would be to add the ability to sort topics alphabetically, both ascending and descending, as there has been many requests for this: Feature request: Sort display of topics Alphabetically, Sort topics in user-defined/alphabetical order, Sort topics (within category) in alphabetical order by default, Call me stupid - how do I sort topics by created date or by title?, and maybe more.

Do you think it would be easy to add the sort alphabetically option?


Also, a heads up, I just tried to install it and got an error saying Gem::LoadError: can't activate request_store-1.5.0, already activated request_store-1.5.1. I have a lot of plugins installed so I’m not sure which one may have already activated it, just wanted to let you know.

Here’s the full message:

I, [2022-05-18T19:22:03.185295 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate request_store-1.5.0, already activated request_store-1.5.1
/var/www/discourse/lib/plugin_gem.rb:27:in `load'
/var/www/discourse/lib/plugin/instance.rb:773:in `gem'
/var/www/discourse/plugins/discourse-post-sorting-customizer/plugin.rb:14:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:679:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:679:in `activate!'
/var/www/discourse/lib/discourse.rb:279:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:276:in `each'
/var/www/discourse/lib/discourse.rb:276:in `activate_plugins!'
/var/www/discourse/config/application.rb:222:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:221:in `<class:Application>'
/var/www/discourse/config/application.rb:81:in `<module:Discourse>'
/var/www/discourse/config/application.rb:80:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `require'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
1 Like