Note:

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

Course level ratings

From MoodleDocs

For users to be able to "rate" courses in a similar way to the way forum ratings work.

Functionality

For a course which has been set up to use ratings, through a block, the user can pick a value from a drop-down list and click a button "send my rating" to submit their rating. The block also displays the average of all ratings received so far and the number of ratings e.g 3 / 5 (2).

If a user has not yet rated the course, then the drop-down list will say "rate...". Otherwise it will display their current rating. If they amend and re-submit, the average rating will be updated, but the number of ratings does not change. No record of the first rating is retained.

This is basically the same as the way ratings are entered for forum posts.

Note that the rating average value and number of entries will also be displayed with other extended course metadata from the expanded display on the course categories pages.

The admin user, and teacher(s) for the course, can click on the current rating to see the list of who has rated the course and the score they gave. This information is not available to students.

Note, if ratings have not been enabled for the course, the block displays a message and link "please enable ratings in the course settings" for teachers/admin and is invisible to users.

Editing interface

The course settings screen will have two new fields:

  • a check box whether ratings are to be used or not.
  • a drop-down list of numbers 1-100 for the scale to be used.

The block will also need to appear in the Add blocks list.

Extensions

Like forums, it is possible that other types of grading might be possible, but these will be considered later. The use of this approach should mean that other forms of grading can be added.

Course scales allow a course can have custom scales defined. It would make sense to make 0-5 (our default) a site-wide scale, and allow the course admin screen to select any of the site-wide or custom scales for that course.

Database structure

New table course_ratings

  • id
  • userid
  • course
  • time
  • rating

Additions to course

  • assessed (true/false)
  • scale

Extensions

To offer full similarity with forums, would need extra field:

  • assesspublic which would be true/false depending on whether users can see each other's ratings. For now, will default assume true.

And extended field:

  • assessed (0/1 as above then 2 for teacher only ratings)

See also