MOBILE-3787 assign: Fix non-null checks

main
Pau Ferrer Ocaña 2022-01-07 13:34:19 +01:00
parent 7cc309275c
commit 9b93a0450c
2 changed files with 35 additions and 27 deletions

View File

@ -79,8 +79,8 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
submissionStatusDraft = AddonModAssignProvider.SUBMISSION_STATUS_DRAFT;
needGrading = AddonModAssignProvider.NEED_GRADING;
protected currentUserId?: number; // Current user ID.
protected currentSite?: CoreSite; // Current user ID.
protected currentUserId!: number; // Current user ID.
protected currentSite!: CoreSite; // Current site.
protected syncEventName = AddonModAssignSyncProvider.AUTO_SYNCED;
// Observers.
@ -93,6 +93,9 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
@Optional() courseContentsPage?: CoreCourseContentsPage,
) {
super('AddonModLessonIndexComponent', content, courseContentsPage);
this.currentSite = CoreSites.getRequiredCurrentSite();
this.currentUserId = this.currentSite.getUserId();
}
/**
@ -101,9 +104,6 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
async ngOnInit(): Promise<void> {
super.ngOnInit();
this.currentUserId = CoreSites.getCurrentSiteUserId();
this.currentSite = CoreSites.getCurrentSite();
// Listen to events.
this.savedObserver = CoreEvents.on(
AddonModAssignProvider.SUBMISSION_SAVED_EVENT,
@ -139,8 +139,12 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
await this.loadContent(false, true);
if (!this.assign) {
return;
}
try {
await AddonModAssign.logView(this.assign!.id, this.assign!.name);
await AddonModAssign.logView(this.assign.id, this.assign.name);
CoreCourse.checkModuleCompletion(this.courseId, this.module.completiondata);
} catch {
// Ignore errors. Just don't check Module completion.
@ -148,10 +152,10 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
if (this.canViewAllSubmissions) {
// User can see all submissions, log grading view.
CoreUtils.ignoreErrors(AddonModAssign.logGradingView(this.assign!.id, this.assign!.name));
CoreUtils.ignoreErrors(AddonModAssign.logGradingView(this.assign.id, this.assign.name));
} else if (this.canViewOwnSubmission) {
// User can only see their own submission, log view the user submission.
CoreUtils.ignoreErrors(AddonModAssign.logSubmissionView(this.assign!.id, this.assign!.name));
CoreUtils.ignoreErrors(AddonModAssign.logSubmissionView(this.assign.id, this.assign.name));
}
}
@ -266,7 +270,11 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
async setGroup(groupId = 0): Promise<void> {
this.group = groupId;
const submissionStatus = await AddonModAssign.getSubmissionStatus(this.assign!.id, {
if (!this.assign) {
return;
}
const submissionStatus = await AddonModAssign.getSubmissionStatus(this.assign.id, {
groupId: this.group,
cmId: this.module.id,
});
@ -278,10 +286,10 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
return;
}
if (this.summary?.warnofungroupedusers === true) {
if (this.summary.warnofungroupedusers === true) {
this.summary.warnofungroupedusers = 'ungroupedusers';
} else {
switch (this.summary?.warnofungroupedusers) {
switch (this.summary.warnofungroupedusers) {
case AddonModAssignProvider.WARN_GROUPS_REQUIRED:
this.summary.warnofungroupedusers = 'ungroupedusers';
break;
@ -386,16 +394,16 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
* @return True if refresh is needed, false otherwise.
*/
protected isRefreshSyncNeeded(syncEventData: AddonModAssignAutoSyncData): boolean {
if (this.assign && syncEventData.assignId == this.assign.id) {
if (syncEventData.warnings && syncEventData.warnings.length) {
// Show warnings.
CoreDomUtils.showErrorModal(syncEventData.warnings[0]);
}
return true;
if (!this.assign || syncEventData.assignId != this.assign.id) {
return false;
}
return false;
if (syncEventData.warnings && syncEventData.warnings.length) {
// Show warnings.
CoreDomUtils.showErrorModal(syncEventData.warnings[0]);
}
return true;
}
/**
@ -403,8 +411,12 @@ export class AddonModAssignIndexComponent extends CoreCourseModuleMainActivityCo
*
* @return Promise resolved when done.
*/
protected sync(): Promise<AddonModAssignSyncResult> {
return AddonModAssignSync.syncAssign(this.assign!.id);
protected async sync(): Promise<AddonModAssignSyncResult | void> {
if (!this.assign) {
return;
}
await AddonModAssignSync.syncAssign(this.assign.id);
}
/**

View File

@ -612,11 +612,7 @@ export class AddonModAssignSubmissionComponent implements OnInit, OnDestroy, Can
// If we have data about the grader, get its profile.
if (feedback.grade && feedback.grade.grader > 0) {
try {
this.grader = await CoreUser.getProfile(feedback.grade.grader, this.courseId);
} catch {
// Ignore errors.
}
this.grader = await CoreUtils.ignoreErrors(CoreUser.getProfile(feedback.grade.grader, this.courseId));
} else {
delete this.grader;
}
@ -633,7 +629,7 @@ export class AddonModAssignSubmissionComponent implements OnInit, OnDestroy, Can
if (feedback.grade && feedback.grade.grade && !this.grade.grade) {
const parsedGrade = parseFloat(feedback.grade.grade);
this.grade!.grade = parsedGrade >= 0 ? parsedGrade : undefined;
this.grade.grade = parsedGrade >= 0 ? parsedGrade : undefined;
this.grade.gradebookGrade = CoreUtils.formatFloat(this.grade.grade);
this.originalGrades.grade = this.grade.grade;
}