moodleou / moodle-mod_oublog

Alternative blog module for Moodle 2 (including course blogs)
31 stars 27 forks source link

Activity completion "Expect Completed on" function doesn't add entry to Calendar/Timeline block for OUblog activities #124

Open alexanderwilliams091 opened 2 years ago

alexanderwilliams091 commented 2 years ago

ENVIRONMENT: 3.11.6 PLUGIN RELEASE: 2020091401

Hi,

It has been observed that the OUblog activity does not add calendar/timeline block entries whenever the activity is set to use the 'Expect completion by' function of Activity Completion.

It appears the Moodle core code might not automatically handle adding entries to the calendar via this field, so requires plugins to explicitly update '\core_completion\api::update_completion_date_event' instead. This was noted elsewhere for the Checklist activity via https://tracker.moodle.org/browse/CONTRIB-8344 where the following code was required to be added for it, for example: https://github.com/davosmith/moodle-checklist/commit/c2edd07cd27a8c20e80e640b5234d990185b744d.patch

Not sure if that is relevant or applicable in this case, but thought I'd mention it.

STEPS TO REPLICATE:

alexanderwilliams091 commented 2 years ago

To add further, it would be best to handle this more like how other core modules --- like the Quiz --- handles this:

$completionexpected = (!empty($quiz->completionexpected)) ? $quiz->completionexpected : null;
\core_completion\api::update_completion_date_event($quiz->coursemodule, 'quiz', $quiz->id, $completionexpected);

The checklist method actually means you can never make the calendar event go away by unticking 'Expect completion by'. The way the Quiz does it means it can be un-set via the applicable tick-box, which would be the preferable outcome.