Note:

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

My course overview improvements

From MoodleDocs

This page will detail the technical specification for the improvements to the My course overview block.

Improvements to my course overview block.
Project state Starting
Tracker issue MDL-55611
Discussion https://tracker.moodle.org/browse/UX-8
Assignee HQ Projects Team


Summary

The new design for the UI for the course overview block requires the ability for Moodle to efficiently query plugins for a list of "date based" tasks for the current user.

The existing "mod print_overview" callbacks do not have sufficient functionality (no separation of fields, inefficient, incomplete, no relation to completion API, inconsistently implemented across modules) so we will have to build a new API (and deprecate mod_xx_print_overview).

Requirements

A user viewing the "My course overview" block will need to be able to see:

Todos

A list of tasks from activities with the following attributes:

  • A unique identifier for the todo, the context id, component, area and itemid.
  • The name of the thing this relates to (default to the activity full name)
  • The link to the thing that this relates to (defaults to the view.php of the module)
  • The course this thing relates to (required)
  • An icon (default to activity icon)
  • A start date and time (optional)
  • An end date and time (optional) - current prototype shows this - maybe it's not needed
  • A count of items (e.g. 4 unread posts)
  • Name of the task ("Submit assignment")
  • Action when clicked (optional)

This list needs to be able to be ordered and paginated by course, date, and original course order of the items themselves.

The items in this list must obey the rules for module visibility. If the user cannot see the module they cannot see the task.

To clarify with UX team

  • How many items to display in "Next 7 days"? Is there a limit, or we always show all of the items?

Progress

We need a way to determine a users course progress.

Course completion: For courses using completion this will be the % completed activities.

No course completion: For courses without course completion - this will be the active section number / the total number of sections - or some calculation based on course start / end date.