New features in 2.3.0.beta7
New Review Queue
This is a large refactor that merges all types of reviewable items in core Discourse (Users, Queued Posts and Flags) into one consolidated review queue.
New Features
- One convenient place to review all content
- Reviewable items are scored and the highest scored items are shown first. Staff members and higher trust level users score items higher than new users.
- You can filter the review queue by status, score, reviewable type, category
- The API for reviewables returns the list of actions that can be performed on an item, which means the front end application can be simpler and not duplicate all the logic.
- Data structures are built to enable non-staff level moderation of items in the near future
Software Design Notes
The Reviewable
model uses single table inheritance (STI), and each type of reviewable must declare a subclass, serializer and ember component. Three types currently exist: ReviewableQueuedPost
, ReviewableUser
and ReviewableFlaggedPost
. Developers are encouraged to look at how other reviewable items are implemented and build their own.
Post Actions (such as flags) must now be created using the PostActionCreator
service object. It has a much friendlier API now and returns a result object which will return the associated reviewable.
Backwards Compatibility
REST API is maintained with the old endpoints, however deprecation warnings are logged. Third party code that is pointed at the old APIs should be updated to the new review queue API. All of the Ember.js/front end code for the old user approval / flagging interface / queued posts is removed.
In a future release we will remove the old APIs and backwards compatibility.
Delegated authentication via user api keys to be used with Apps (like the DiscourseHub mobile app that will be released soon)
This adds a new capability to the user API: delegated authentication via a one time password
mechanism. This allows apps to request a one-use password and use that to authenticate the user in an isolated browser session (like SafariViewController, for example).
Let users delete their own topics
Allow end users to tombstone and close the topic if it has no replies (waiting 24 hours till actual deletion).
Introducing new UI for tracking Userâs ignored or muted states
-
Add ignore duration selection for user notifications preferences page
Introducing new UI for tracking Userâs ignored or muted states
https://meta.discourse.org/t/ability-to-ignore-a-user/110254/5![55148737-b05aac80-5140-11e9-8fe3-352b22288711|690x496](upload://jTw9HrDYXuUPbu2kNNJoB31neMF.gif) -
Introduce ignore duration selection
Ability to restrict some tags to a category while allowing all others
A new checkbox has been added to the Tags tab of the category settings modal
which is used when some tags and/or tag groups are restricted to the category,
and all other unrestricted tags should also be allowed.
Default is the same as the previous behaviour: only allow the specified set of
tags and tag groups in the category.
Allow users to customize bonuses for reviewable types
A new settings section in the review queue allows admins to specify that
certain types of flags should be weighted higher than others.
Bug and UX Fixes
Update the reviewable count before the message bus
In certain edge cases, the message bus wonât send the message to the
user about the updated review count and it can go out of sync.
This patch synchronizes the review count every time:
-
The user visits the âNeeds Reviewâ page
-
Every time the user performs an action
Donât trigger notifications when changing category/tags of unlisted topics
When topic is unlisted it should not notify a user if it is moved to a new category in any scenario
Hide post replies content for ignored users
This is part of the Ability to ignore a user feature.