Skip to content

v0.7.0

Choose a tag to compare

@fvarrui fvarrui released this 12 Oct 20:35
· 119 commits to main since this release

New

  • Long lists a page at a time (#55). notifications, conversations, conversation, forumDiscussions, discussion, assignmentSubmissions, quizResults, questions, participants and courseLogs take limit and offset. With limit, the list comes as { items, more } (ListPage); without it, the same plain list as before, and TypeScript gives the right type for each call. The driver asks Moodle only for the page wherever Moodle can page (services' limits, a page's own paging); the docs say where it can't. The moodle command takes --limit and --offset and says when there are more. See Long lists.
  • notifications({ unreadOnly: true, limit }) pages over unread notifications.
  • assignmentSubmissions, graderReport and completionReport take userIds, to read only some participants.
  • New types: ListPage, PageOptions, NotificationOptions, SubmissionOptions, ParticipantOptions, CourseLogOptions, QuizResultsOptions and the results of the functions above.

Fixes

  • assignmentSubmissions no longer creates empty submissions in Moodle just by reading (#54). Moodle's grading panel creates one for a participant who has none, so the panel is now opened only for participants with a submission; those without one come back without feedback files, workflow state or markers. rubric, allocateMarker and setWorkflowState read the panel of a participant who submitted, where there is one. What reading still writes (a "not graded" grade for a submitted, ungraded participant, as Moodle's own grader does) is said in the docs.

Breaking changes

  • courseLogs(courseId, { limit }) now returns { items, more } instead of a list, like every paged function. Read .items; more says whether to ask again with offset. Called without limit, it still returns a list (its default of 100 entries stays).

The Moodle sandbox regression suite passed for the touched areas (messages, forums, assignments, lifecycle).