From 0fdfa88c0d7a2ccd248a502eb2c5036029904f66 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Tue, 2 May 2023 08:20:11 +0200 Subject: [PATCH] MOBILE-4275 course: Fix course completion not updated in some cases This is a temporary solution, the code that handles automatic activity completion should be refactored --- .../course/classes/main-resource-component.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/core/features/course/classes/main-resource-component.ts b/src/core/features/course/classes/main-resource-component.ts index e6d7a3105..5944a2a3b 100644 --- a/src/core/features/course/classes/main-resource-component.ts +++ b/src/core/features/course/classes/main-resource-component.ts @@ -391,11 +391,23 @@ export class CoreCourseModuleMainResourceComponent implements OnInit, OnDestroy, * @returns Promise resolved when done. */ protected async fetchModule(): Promise { + const previousCompletion = this.module.completiondata; + const module = await CoreCourse.getModule(this.module.id, this.courseId); await CoreCourseHelper.loadModuleOfflineCompletion(this.courseId, module); this.module = module; + + // @todo: Temporary fix to update course page completion. This should be refactored in MOBILE-4326. + if (previousCompletion && module.completiondata && previousCompletion.state !== module.completiondata.state) { + await CoreUtils.ignoreErrors(CoreCourse.invalidateSections(this.courseId)); + + CoreEvents.trigger(CoreEvents.COMPLETION_MODULE_VIEWED, { + courseId: this.courseId, + cmId: module.completiondata.cmid, + }); + } } /**