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 (the group must not exceed 200 users)
-
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
: is the discourse policy plugin enabled on the site.
policy_max_group_size
: only allow policies on groups smaller or equal to this size (default 200)
policy_restrict_to_staff_posts
: policies may only appear on staff posts
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)
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)