MOBILE-3833 course: Review course module optional property
parent
5794b66cd9
commit
27c7a7a952
|
@ -28,7 +28,6 @@ import { CoreCourseActivityPrefetchHandlerBase } from '@features/course/classes/
|
||||||
import { CoreCourse, CoreCourseAnyModuleData, CoreCourseCommonModWSOptions } from '@features/course/services/course';
|
import { CoreCourse, CoreCourseAnyModuleData, CoreCourseCommonModWSOptions } from '@features/course/services/course';
|
||||||
import { CoreWSFile } from '@services/ws';
|
import { CoreWSFile } from '@services/ws';
|
||||||
import { AddonModAssignHelper, AddonModAssignSubmissionFormatted } from '../assign-helper';
|
import { AddonModAssignHelper, AddonModAssignSubmissionFormatted } from '../assign-helper';
|
||||||
import { CoreCourseHelper } from '@features/course/services/course-helper';
|
|
||||||
import { CoreUtils } from '@services/utils/utils';
|
import { CoreUtils } from '@services/utils/utils';
|
||||||
import { CoreFilepool } from '@services/filepool';
|
import { CoreFilepool } from '@services/filepool';
|
||||||
import { CoreGroups } from '@services/groups';
|
import { CoreGroups } from '@services/groups';
|
||||||
|
@ -243,7 +242,7 @@ export class AddonModAssignPrefetchHandlerService extends CoreCourseActivityPref
|
||||||
|
|
||||||
promises.push(this.prefetchSubmissions(assign, courseId, module.id, userId, siteId));
|
promises.push(this.prefetchSubmissions(assign, courseId, module.id, userId, siteId));
|
||||||
|
|
||||||
promises.push(CoreCourseHelper.getModuleCourseIdByInstance(assign.id, 'assign', siteId));
|
promises.push(CoreCourse.getModuleBasicInfoByInstance(assign.id, 'assign', siteId));
|
||||||
// Get course data, needed to determine upload max size if it's configured to be course limit.
|
// Get course data, needed to determine upload max size if it's configured to be course limit.
|
||||||
promises.push(CoreUtils.ignoreErrors(CoreCourses.getCourseByField('id', courseId, siteId)));
|
promises.push(CoreUtils.ignoreErrors(CoreCourses.getCourseByField('id', courseId, siteId)));
|
||||||
|
|
||||||
|
@ -515,7 +514,7 @@ export class AddonModAssignPrefetchHandlerService extends CoreCourseActivityPref
|
||||||
* @return Promise resolved when done.
|
* @return Promise resolved when done.
|
||||||
*/
|
*/
|
||||||
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModAssignSyncResult> {
|
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModAssignSyncResult> {
|
||||||
return AddonModAssignSync.syncAssign(module.instance!, siteId);
|
return AddonModAssignSync.syncAssign(module.instance, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ export class AddonModChoicePrefetchHandlerService extends CoreCourseActivityPref
|
||||||
* @return Promise resolved when done.
|
* @return Promise resolved when done.
|
||||||
*/
|
*/
|
||||||
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModChoiceSyncResult> {
|
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModChoiceSyncResult> {
|
||||||
return AddonModChoiceSync.syncChoice(module.instance!, undefined, siteId);
|
return AddonModChoiceSync.syncChoice(module.instance, undefined, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,7 +173,7 @@ export class AddonModDataPrefetchHandlerService extends CoreCourseActivityPrefet
|
||||||
async invalidateModule(module: CoreCourseAnyModuleData, courseId: number): Promise<void> {
|
async invalidateModule(module: CoreCourseAnyModuleData, courseId: number): Promise<void> {
|
||||||
const promises: Promise<void>[] = [];
|
const promises: Promise<void>[] = [];
|
||||||
promises.push(AddonModData.invalidateDatabaseData(courseId));
|
promises.push(AddonModData.invalidateDatabaseData(courseId));
|
||||||
promises.push(AddonModData.invalidateDatabaseAccessInformationData(module.instance!));
|
promises.push(AddonModData.invalidateDatabaseAccessInformationData(module.instance));
|
||||||
|
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ export class AddonModDataPrefetchHandlerService extends CoreCourseActivityPrefet
|
||||||
*/
|
*/
|
||||||
async sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModDataSyncResult> {
|
async sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModDataSyncResult> {
|
||||||
const promises = [
|
const promises = [
|
||||||
AddonModDataSync.syncDatabase(module.instance!, siteId),
|
AddonModDataSync.syncDatabase(module.instance, siteId),
|
||||||
AddonModDataSync.syncRatings(module.id, true, siteId),
|
AddonModDataSync.syncRatings(module.id, true, siteId),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@ export class AddonModFeedbackPrefetchHandlerService extends CoreCourseActivityPr
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModFeedbackSyncResult> {
|
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModFeedbackSyncResult> {
|
||||||
return AddonModFeedbackSync.syncFeedback(module.instance!, siteId);
|
return AddonModFeedbackSync.syncFeedback(module.instance, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceCo
|
||||||
await this.loadContent();
|
await this.loadContent();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await AddonModFolder.logView(this.module.instance!, this.module.name);
|
await AddonModFolder.logView(this.module.instance, this.module.name);
|
||||||
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
|
|
|
@ -320,8 +320,8 @@ export class AddonModForumPrefetchHandlerService extends CoreCourseActivityPrefe
|
||||||
): Promise<AddonModForumSyncResult> {
|
): Promise<AddonModForumSyncResult> {
|
||||||
const promises: Promise<AddonModForumSyncResult>[] = [];
|
const promises: Promise<AddonModForumSyncResult>[] = [];
|
||||||
|
|
||||||
promises.push(AddonModForumSync.syncForumDiscussions(module.instance!, undefined, siteId));
|
promises.push(AddonModForumSync.syncForumDiscussions(module.instance, undefined, siteId));
|
||||||
promises.push(AddonModForumSync.syncForumReplies(module.instance!, undefined, siteId));
|
promises.push(AddonModForumSync.syncForumReplies(module.instance, undefined, siteId));
|
||||||
promises.push(AddonModForumSync.syncRatings(module.id, undefined, true, siteId));
|
promises.push(AddonModForumSync.syncRatings(module.id, undefined, true, siteId));
|
||||||
|
|
||||||
const results = await Promise.all(promises);
|
const results = await Promise.all(promises);
|
||||||
|
|
|
@ -219,7 +219,7 @@ export class AddonModGlossaryPrefetchHandlerService extends CoreCourseActivityPr
|
||||||
*/
|
*/
|
||||||
async sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModGlossarySyncResult> {
|
async sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModGlossarySyncResult> {
|
||||||
const results = await Promise.all([
|
const results = await Promise.all([
|
||||||
AddonModGlossarySync.syncGlossaryEntries(module.instance!, undefined, siteId),
|
AddonModGlossarySync.syncGlossaryEntries(module.instance, undefined, siteId),
|
||||||
AddonModGlossarySync.syncRatings(module.id, undefined, siteId),
|
AddonModGlossarySync.syncRatings(module.id, undefined, siteId),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ export class AddonModImscpIndexComponent extends CoreCourseModuleMainResourceCom
|
||||||
await this.loadContent();
|
await this.loadContent();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await AddonModImscp.logView(this.module.instance!, this.module.name);
|
await AddonModImscp.logView(this.module.instance, this.module.name);
|
||||||
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
|
|
|
@ -537,7 +537,7 @@ export class AddonModLessonPrefetchHandlerService extends CoreCourseActivityPref
|
||||||
* @return Promise resolved when done.
|
* @return Promise resolved when done.
|
||||||
*/
|
*/
|
||||||
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModLessonSyncResult> {
|
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModLessonSyncResult> {
|
||||||
return AddonModLessonSync.syncLesson(module.instance!, false, false, siteId);
|
return AddonModLessonSync.syncLesson(module.instance, false, false, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ export class AddonModPageIndexComponent extends CoreCourseModuleMainResourceComp
|
||||||
await this.loadContent();
|
await this.loadContent();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await AddonModPage.logView(this.module.instance!, this.module.name);
|
await AddonModPage.logView(this.module.instance, this.module.name);
|
||||||
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
|
|
|
@ -208,7 +208,7 @@ export class AddonModQuizPrefetchHandlerService extends CoreCourseActivityPrefet
|
||||||
// Invalidate the calls required to check if a quiz is downloadable.
|
// Invalidate the calls required to check if a quiz is downloadable.
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
AddonModQuiz.invalidateQuizData(courseId),
|
AddonModQuiz.invalidateQuizData(courseId),
|
||||||
AddonModQuiz.invalidateUserAttemptsForUser(module.instance!),
|
AddonModQuiz.invalidateUserAttemptsForUser(module.instance),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ export class AddonModResourceIndexComponent extends CoreCourseModuleMainResource
|
||||||
|
|
||||||
await this.loadContent();
|
await this.loadContent();
|
||||||
try {
|
try {
|
||||||
await AddonModResource.logView(this.module.instance!, this.module.name);
|
await AddonModResource.logView(this.module.instance, this.module.name);
|
||||||
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
|
|
|
@ -202,7 +202,7 @@ export class AddonModResourceHelperProvider {
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await AddonModResource.logView(module.instance!, module.name);
|
await AddonModResource.logView(module.instance, module.name);
|
||||||
CoreCourse.checkModuleCompletion(courseId, module.completiondata);
|
CoreCourse.checkModuleCompletion(courseId, module.completiondata);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
|
|
|
@ -107,7 +107,7 @@ export class AddonModSurveyPrefetchHandlerService extends CoreCourseActivityPref
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModSurveySyncResult> {
|
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModSurveySyncResult> {
|
||||||
return AddonModSurveySync.syncSurvey(module.instance!, undefined, siteId);
|
return AddonModSurveySync.syncSurvey(module.instance, undefined, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ export class AddonModUrlIndexComponent extends CoreCourseModuleMainResourceCompo
|
||||||
*/
|
*/
|
||||||
protected async logView(): Promise<void> {
|
protected async logView(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
await AddonModUrl.logView(this.module.instance!, this.module.name);
|
await AddonModUrl.logView(this.module.instance, this.module.name);
|
||||||
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
|
|
|
@ -14,8 +14,7 @@
|
||||||
|
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { CoreCourseActivityPrefetchHandlerBase } from '@features/course/classes/activity-prefetch-handler';
|
import { CoreCourseActivityPrefetchHandlerBase } from '@features/course/classes/activity-prefetch-handler';
|
||||||
import { CoreCourseAnyModuleData } from '@features/course/services/course';
|
import { CoreCourse, CoreCourseAnyModuleData } from '@features/course/services/course';
|
||||||
import { CoreCourseHelper } from '@features/course/services/course-helper';
|
|
||||||
import { CoreFilepool } from '@services/filepool';
|
import { CoreFilepool } from '@services/filepool';
|
||||||
import { CoreGroups } from '@services/groups';
|
import { CoreGroups } from '@services/groups';
|
||||||
import { CoreFileSizeSum, CorePluginFileDelegate } from '@services/plugin-file-delegate';
|
import { CoreFileSizeSum, CorePluginFileDelegate } from '@services/plugin-file-delegate';
|
||||||
|
@ -190,7 +189,7 @@ export class AddonModWikiPrefetchHandlerService extends CoreCourseActivityPrefet
|
||||||
|
|
||||||
// Fetch info to provide wiki links.
|
// Fetch info to provide wiki links.
|
||||||
promises.push(AddonModWiki.getWiki(courseId, module.id, { siteId }).then((wiki) =>
|
promises.push(AddonModWiki.getWiki(courseId, module.id, { siteId }).then((wiki) =>
|
||||||
CoreCourseHelper.getModuleCourseIdByInstance(wiki.id, 'wiki', siteId)));
|
CoreCourse.getModuleBasicInfoByInstance(wiki.id, 'wiki', siteId)));
|
||||||
|
|
||||||
// Get related page files and fetch them.
|
// Get related page files and fetch them.
|
||||||
promises.push(this.getFiles(module, courseId, single, siteId).then((files) =>
|
promises.push(this.getFiles(module, courseId, single, siteId).then((files) =>
|
||||||
|
@ -203,7 +202,7 @@ export class AddonModWikiPrefetchHandlerService extends CoreCourseActivityPrefet
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModWikiSyncWikiResult> {
|
sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModWikiSyncWikiResult> {
|
||||||
return AddonModWikiSync.syncWiki(module.instance!, module.course, module.id, siteId);
|
return AddonModWikiSync.syncWiki(module.instance, module.course, module.id, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ export class AddonModWorkshopEditSubmissionPage implements OnInit, OnDestroy, Ca
|
||||||
this.editorExtraParams.id = this.submissionId;
|
this.editorExtraParams.id = this.submissionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.workshopId = this.module.instance!;
|
this.workshopId = this.module.instance;
|
||||||
this.componentId = this.module.id;
|
this.componentId = this.module.id;
|
||||||
|
|
||||||
if (!this.isDestroyed) {
|
if (!this.isDestroyed) {
|
||||||
|
|
|
@ -379,7 +379,7 @@ export class AddonModWorkshopPrefetchHandlerService extends CoreCourseActivityPr
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
async sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModDataSyncResult> {
|
async sync(module: CoreCourseAnyModuleData, courseId: number, siteId?: string): Promise<AddonModDataSyncResult> {
|
||||||
return AddonModWorkshopSync.syncWorkshop(module.instance!, siteId);
|
return AddonModWorkshopSync.syncWorkshop(module.instance, siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { CoreNavigator } from '@services/navigator';
|
import { CoreNavigator } from '@services/navigator';
|
||||||
import { CoreDomUtils } from '@services/utils/dom';
|
import { CoreDomUtils } from '@services/utils/dom';
|
||||||
import { CoreCourseAnyModuleData } from '../services/course';
|
import { CoreCourseModuleData } from '../services/course-helper';
|
||||||
import { CoreCourseModuleMainResourceComponent } from './main-resource-component';
|
import { CoreCourseModuleMainResourceComponent } from './main-resource-component';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,7 +29,7 @@ export class CoreCourseModuleMainActivityPage<ActivityType extends CoreCourseMod
|
||||||
activityComponent?: ActivityType;
|
activityComponent?: ActivityType;
|
||||||
|
|
||||||
title!: string;
|
title!: string;
|
||||||
module!: CoreCourseAnyModuleData;
|
module!: CoreCourseModuleData;
|
||||||
courseId!: number;
|
courseId!: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +37,7 @@ export class CoreCourseModuleMainActivityPage<ActivityType extends CoreCourseMod
|
||||||
*/
|
*/
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
try {
|
try {
|
||||||
this.module = CoreNavigator.getRequiredRouteParam<CoreCourseAnyModuleData>('module');
|
this.module = CoreNavigator.getRequiredRouteParam<CoreCourseModuleData>('module');
|
||||||
this.courseId = CoreNavigator.getRequiredRouteNumberParam('courseId');
|
this.courseId = CoreNavigator.getRequiredRouteNumberParam('courseId');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
CoreDomUtils.showErrorModal(error);
|
CoreDomUtils.showErrorModal(error);
|
||||||
|
|
|
@ -1429,26 +1429,6 @@ export class CoreCourseHelperProvider {
|
||||||
return CoreConstants.ICON_DOWNLOADING;
|
return CoreConstants.ICON_DOWNLOADING;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the course ID from a module instance ID, showing an error message if it can't be retrieved.
|
|
||||||
*
|
|
||||||
* @param id Instance ID.
|
|
||||||
* @param module Name of the module. E.g. 'glossary'.
|
|
||||||
* @param siteId Site ID. If not defined, current site.
|
|
||||||
* @return Promise resolved with the module's course ID.
|
|
||||||
*/
|
|
||||||
async getModuleCourseIdByInstance(id: number, module: string, siteId?: string): Promise<number> {
|
|
||||||
try {
|
|
||||||
const cm = await CoreCourse.getModuleBasicInfoByInstance(id, module, siteId);
|
|
||||||
|
|
||||||
return cm.course;
|
|
||||||
} catch (error) {
|
|
||||||
CoreDomUtils.showErrorModalDefault(error, 'core.course.errorgetmodule', true);
|
|
||||||
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get prefetch info for a module.
|
* Get prefetch info for a module.
|
||||||
*
|
*
|
||||||
|
@ -1629,7 +1609,7 @@ export class CoreCourseHelperProvider {
|
||||||
const site = await CoreSites.getSite(siteId);
|
const site = await CoreSites.getSite(siteId);
|
||||||
|
|
||||||
// Get the module.
|
// Get the module.
|
||||||
const module = <CoreCourseModuleData>
|
const module =
|
||||||
await CoreCourse.getModule(moduleId, courseId, sectionId, false, false, siteId, modName);
|
await CoreCourse.getModule(moduleId, courseId, sectionId, false, false, siteId, modName);
|
||||||
|
|
||||||
if (CoreSites.getCurrentSiteId() == site.getId()) {
|
if (CoreSites.getCurrentSiteId() == site.getId()) {
|
||||||
|
@ -1649,13 +1629,11 @@ export class CoreCourseHelperProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.warn('navCtrl was not passed to navigateToModule by the link handler for ' + module.modname);
|
|
||||||
|
|
||||||
const params: Params = {
|
const params: Params = {
|
||||||
course: { id: courseId },
|
course: { id: courseId },
|
||||||
module: module,
|
module,
|
||||||
sectionId: sectionId,
|
sectionId,
|
||||||
modParams: modParams,
|
modParams,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (courseId == site.getSiteHomeId()) {
|
if (courseId == site.getSiteHomeId()) {
|
||||||
|
|
|
@ -936,7 +936,7 @@ export class CoreCourseProvider {
|
||||||
* Load module contents into module.contents if they aren't loaded already.
|
* Load module contents into module.contents if they aren't loaded already.
|
||||||
*
|
*
|
||||||
* @param module Module to load the contents.
|
* @param module Module to load the contents.
|
||||||
* @param courseId The course ID. Recommended to speed up the process and minimize data usage.
|
* @param courseId Not used since 4.0.
|
||||||
* @param sectionId The section ID.
|
* @param sectionId The section ID.
|
||||||
* @param preferCache True if shouldn't call WS if data is cached, false otherwise.
|
* @param preferCache True if shouldn't call WS if data is cached, false otherwise.
|
||||||
* @param ignoreCache True if it should ignore cached data (it will always fail in offline or server down).
|
* @param ignoreCache True if it should ignore cached data (it will always fail in offline or server down).
|
||||||
|
@ -960,7 +960,7 @@ export class CoreCourseProvider {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const mod = await this.getModule(module.id, courseId, sectionId, preferCache, ignoreCache, siteId, modName);
|
const mod = await this.getModule(module.id, module.course, sectionId, preferCache, ignoreCache, siteId, modName);
|
||||||
|
|
||||||
if (!mod.contents) {
|
if (!mod.contents) {
|
||||||
throw new CoreError(Translate.instant('core.course.modulenotfound'));
|
throw new CoreError(Translate.instant('core.course.modulenotfound'));
|
||||||
|
@ -1532,13 +1532,13 @@ export type CoreCourseGetContentsWSModule = {
|
||||||
id: number; // Activity id.
|
id: number; // Activity id.
|
||||||
url?: string; // Activity url.
|
url?: string; // Activity url.
|
||||||
name: string; // Activity module name.
|
name: string; // Activity module name.
|
||||||
instance?: number; // Instance id.
|
instance: number; // Instance id. Cannot be undefined.
|
||||||
contextid?: number; // Activity context id.
|
contextid?: number; // @since 3.10. Activity context id.
|
||||||
description?: string; // Activity description.
|
description?: string; // Activity description.
|
||||||
visible?: number; // Is the module visible.
|
visible: number; // Is the module visible. Cannot be undefined.
|
||||||
uservisible?: boolean; // Is the module visible for the user?.
|
uservisible: boolean; // Is the module visible for the user?. Cannot be undefined.
|
||||||
availabilityinfo?: string; // Availability information.
|
availabilityinfo?: string; // Availability information.
|
||||||
visibleoncoursepage?: number; // Is the module visible on course page.
|
visibleoncoursepage: number; // Is the module visible on course page. Cannot be undefined.
|
||||||
modicon: string; // Activity icon url.
|
modicon: string; // Activity icon url.
|
||||||
modname: string; // Activity module type.
|
modname: string; // Activity module type.
|
||||||
modplural: string; // Activity module plural name.
|
modplural: string; // Activity module plural name.
|
||||||
|
|
Loading…
Reference in New Issue