Difference between revisions of "mod forum-subscriptions"

Jump to: navigation, search
(Created page with "== Feature proposal/specification for changes to mod_forum subscription options == This is a holding page while I write some notes up. Please see the discussion page first. ...")
 
(Update with some details of the specification)
Line 1: Line 1:
 
== Feature proposal/specification for changes to mod_forum subscription options ==
 
== Feature proposal/specification for changes to mod_forum subscription options ==
  
This is a holding page while I write some notes up. Please see the discussion page first.
+
=== 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:
 +
# inability for some staff to unsubscribe from forced subscription forums;
 +
# inability for other staff to subscribe to forced subscription forums;
 +
# too much e-mail from forums that users are not interested in;
 +
# too much e-mail from forum threads that users are not interested in.
 +
 
 +
One of these issues (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.
 +
 
 +
I have also opened MDL-40483 to describe and resolve the first two issues to introduce a new capability allowing 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 changes ====
 +
A page listing all forum instances for a user will be created. This will include:
 +
* forum name,
 +
* link to course_module instance;
 +
* forum description; and
 +
* current subscription setting.
 +
 
 +
This information will also be displayed on the existing per-course forum index (/mod/forum/index.php?id=X).
 +
 
 +
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;
 +
 
 +
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
 +
* maildigest - int default -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
  
 
[[Category:Project]]
 
[[Category:Project]]
 +
[[Category:Proposal]]

Revision as of 09:14, 4 July 2013

Feature proposal/specification for changes to mod_forum subscription options

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.

One of these issues (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.

I have also opened MDL-40483 to describe and resolve the first two issues to introduce a new capability allowing 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 changes

A page listing all forum instances for a user will be created. This will include:

  • forum name,
  • link to course_module instance;
  • forum description; and
  • current subscription setting.

This information will also be displayed on the existing per-course forum index (/mod/forum/index.php?id=X).

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;

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

  • maildigest - int default -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