Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

mod forum-subscriptions

From MoodleDocs
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Feature proposal/specification for increased granularity to mod_forum subscription digest settings

Summary

To reduce the amount of e-mail that users receive, but still allow them to be notified of changes, this proposal suggests adding granularity to the user Daily Digest options. Specifically, this feature proposal suggests adding a per-forum Daily Digest setting rather than a per-user setting.

Background

We've encountered a number of issues relating to forum subscriptions, and the granularity of the options within them. These broadly fit into four groups:

  1. inability for some staff to unsubscribe from forced subscription forums;
  2. inability for other staff to subscribe to forced subscription forums;
  3. too much e-mail from forums that users are not interested in;
  4. too much e-mail from forum threads that users are not interested in.

Several of these issues may be addressed shortly by MDL-39707 and MDL-40483:

  • The issue of forum thread subscription will be resolved by MDL-39707 if it is implemented, however I don't believe that the rest will based on the descriptions available; and
  • MDL-40483 attempts to address the first two issues by introducing a new capability which allows you to define which users can unsubscribe from a forum.

However, there is still a lack of granularity for forum subscriptions on the whole and this is the final area that this proposal seeks to address.

Proposal in brief

At present, forum digest settings are a user profile setting and the same setting applies to every forum in Moodle. As a solution to the issue described, the proposal we're putting forward is to introduce additional granularity to the forum subscription type that users may choose. This will:

  • convert the existing user profile digest setting into a user default preference; and
  • add a per-forum instance setting for each user to select the digest preference.

Effectively, this will give each user the option of whether they wish to receive a digest e-mail, or a single e-mail for each of their forums.

Changes required

User profile settings

Wording will be changed to indicate that the setting selected is the user's default setting.

mod_forum UI changes

The existing per-course forum index (/mod/forum/index.php?id=X) will be updated to display the current subscription settings. This information may also be displayed on a summary page for all forums a user is subscribed to (depending on performance aspects).

Where a user has the appropriate capability to both subscribe and unsubscribe from a forum's email notifications, a dropdown with these options will be displayed. Where they are unable to change their subscription options, text/an icon will be displayed indicating that that they cannot change their subscription and what their current subscription status is.

The current subscription setting will be a dropdown with options:

  • Profile Default - always reflects the current profile field setting;
  • Single e-mail - always send an e-mail per forum discussion;
  • Daily Digest Complete - send a daily e-mail each day with the complete contents of each post in this forum;
  • Daily Digest Subjects - send a daily e-mail each day with the subject of each post in this forum;

modforum-subscription-ui1.png

mod_forum back-end changes

To cater for this, the forum_subscriptions table will be modified to incorporate any overrides to the standard settings. The following fields will be added

type | length | default value | nullable | int | 1 | -1 | not null |

No additional database call is required for this, but the existing call to retrieve a list of all forums will be modified to outer join the forum_subscriptions table against the current user.

A single_select will be used to change the selection.

TODO

  • navigation changes to show and allow cyclic toggling of the setting?
  • improve perf of cron so it does not make an additional call per forum per message per user (on developed PoC patch)
  • determine UI changes required
  • UI mockups