Summary | Discourse Policy gives the ability to confirm your users have seen or done something, with optional reminders. | |
Repository Link | https://github.com/discourse/discourse-policy | |
Install Guide | How to install plugins in Discourse |
Features
Discourse policy shares much of its DNA with polls, it has the goal of ensuring members of a group accept certain policies by clicking a button.
It has some specific features that set it apart from polls:
-
It must apply to a group.
-
It can optionally nag members of a group either weekly or daily to click accept on a policy.
-
The UX makes it very easy to see who accepted and who did not accept a policy.
Configuration
Screenshots
Before clicking accept
After clicking “grey” person on top right
After clicking accept
Creating a policy
Discourse policy registers a custom [policy]
BBCode element. Which means you need to write this block of code in your post where you want to show this policy.
[policy group=founders reminder=daily]
I accept this policy will annoy me daily until I click accept
[/policy]
In this case the policy applies to the founders
group and a reminder is sent daily to all users that did not accept the policy.
Site settings
policy_enabled
: Enable the discourse policy plugin on the site.
policy_restrict_to_staff_posts
: Policies may only appear on staff posts.
policy easy revoke
: Show the accept and revoke buttons at the same time.
BBCode attributes
The [policy]
element can accept the following attributes.
- group: the group name that policy will apply to required
- version: the version number of the policy, bump number up to require all users re-accept the policy
- reminder: remind users of the group to accept policy (weekly or daily), optional, default off
- accept: text used for accept button, default is “Accept Policy”
- revoke: text used for revoke button, default is “Revoke Policy”
- renew: number of days or text describing period (monthly, quarterly or yearly) after which a user needs to re-accept policy
- renew-start: the first date renewals will start at Eg:
17-10-2017
, useful if you want to set the renewal cadence so it happens every half-year (Jan,June)
The backend job to check for policy reminders runs every 6 hours. If the
reminder
element is set to weekly or daily, users who have not accepted a policy will be sent notification reminders to accept the policy only if they have not already received a reminder notification for the policy within the past week or day.
Usage examples
Basic policy:
[policy group="team" reminder="daily" accept="Accept" revoke="Ignore" version="1"]
I have read, understand and acknowledge this policy.
[/policy]
Bumping the revision number, to require that everyone reads the update:
[policy group="team" reminder="daily" accept="Accept" revoke="Ignore" version="2"]
I have read, understand and acknowledge this policy. (Last updated [date=2020-04-23 timezone="America/Los_Angeles"])
[/policy]
Periodic auditing task:
[policy group="audit_committee" reminder="weekly" renew="90" renew-start="01-07-2019" version="1" accept="Assignment Complete"]
I have ensured that someone is assigned to this quarterly audit task.
[/policy]
CHANGELOG
TODO
- Optional immediate reminder for new policies
- Possibly allow certain groups to apply policies (expanding on staff)
Last edited by @SaraDev 2024-09-10T20:31:18Z
Check document
Perform check on document: