diff --git a/scripts/langindex.json b/scripts/langindex.json index 8b5f223cf6b..5ed7bec5ed6 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -362,6 +362,7 @@ "addon.mod_assign.attempthistory": "assign", "addon.mod_assign.attemptnumber": "assign", "addon.mod_assign.attemptreopenmethod": "assign", + "addon.mod_assign.attemptreopenmethod_automatic": "assign", "addon.mod_assign.attemptreopenmethod_manual": "assign", "addon.mod_assign.attemptreopenmethod_untilpass": "assign", "addon.mod_assign.attemptsettings": "assign", diff --git a/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html b/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html index f8bb378b866..c6dc8733962 100644 --- a/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html +++ b/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html @@ -80,7 +80,7 @@

{{'addon.mod_assign.grade' | translate}}

- @if (assign.attemptreopenmethod !== attemptReopenMethodNone) { + @if (assign.maxattempts !== 1) {

{{ 'addon.mod_assign.attemptsettings' | translate }}

diff --git a/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.ts b/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.ts index a602ffd0bc4..d99234636fa 100644 --- a/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.ts +++ b/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.ts @@ -80,7 +80,6 @@ export class AddonModAssignEditFeedbackModalComponent implements OnDestroy, OnIn gradeInfo?: AddonModAssignGradeInfo; // Grade data for the assignment, retrieved from the server. allowAddAttempt = false; // Allow adding a new attempt when grading. - attemptReopenMethodNone = AddonModAssignAttemptReopenMethodValues.NONE; unlimitedAttempts = ADDON_MOD_ASSIGN_UNLIMITED_ATTEMPTS; currentAttemptNumber = 0; // The current attempt number. maxAttemptsText = Translate.instant('addon.mod_assign.unlimitedattempts'); // The text for maximum attempts. @@ -150,7 +149,7 @@ export class AddonModAssignEditFeedbackModalComponent implements OnDestroy, OnIn await this.treatGradeInfo(assign); const isManual = assign.attemptreopenmethod == AddonModAssignAttemptReopenMethodValues.MANUAL; - const isUnlimited = assign.maxattempts == ADDON_MOD_ASSIGN_UNLIMITED_ATTEMPTS; + const isUnlimited = assign.maxattempts === ADDON_MOD_ASSIGN_UNLIMITED_ATTEMPTS; const isLessThanMaxAttempts = !!this.userSubmission && (this.userSubmission.attemptnumber < (assign.maxattempts - 1)); this.allowAddAttempt = isManual && (!this.userSubmission || isUnlimited || isLessThanMaxAttempts); diff --git a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html index dad77308cf4..8025542366d 100644 --- a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html +++ b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html @@ -34,8 +34,13 @@

- @if (currentAttemptNumber) { - {{ 'addon.mod_assign.attempt' | translate : { '$a' : currentAttemptNumber } }} + @if (assign.maxattempts !== 1 && currentAttemptNumber) { + @if (assign.maxattempts === unlimitedAttempts) { + {{ 'addon.mod_assign.attempt' | translate : { '$a' : currentAttemptNumber } }} + } @else { + {{ 'addon.mod_assign.attempt' | translate : { '$a' : 'addon.mod_assign.outof' | translate : + {'$a': {'current': currentAttemptNumber, 'total': assign.maxattempts} } } }} + } } @else { {{'addon.mod_assign.submission' | translate}} } diff --git a/src/addons/mod/assign/components/submission/submission.ts b/src/addons/mod/assign/components/submission/submission.ts index a655e7758a7..926c38a6012 100644 --- a/src/addons/mod/assign/components/submission/submission.ts +++ b/src/addons/mod/assign/components/submission/submission.ts @@ -50,6 +50,7 @@ import { ADDON_MOD_ASSIGN_PAGE_NAME, ADDON_MOD_ASSIGN_SUBMISSION_REMOVED_EVENT, ADDON_MOD_ASSIGN_SUBMITTED_FOR_GRADING_EVENT, + ADDON_MOD_ASSIGN_UNLIMITED_ATTEMPTS, AddonModAssignAttemptReopenMethodValues, AddonModAssignGradingStates, AddonModAssignSubmissionStatusValues, @@ -133,7 +134,7 @@ export class AddonModAssignSubmissionComponent implements OnInit { // Some constants. statusNew = AddonModAssignSubmissionStatusValues.NEW; statusReopened = AddonModAssignSubmissionStatusValues.REOPENED; - attemptReopenMethodNone = AddonModAssignAttemptReopenMethodValues.NONE; + unlimitedAttempts = ADDON_MOD_ASSIGN_UNLIMITED_ATTEMPTS; previousAttempts: AddonModAssignSubmissionPreviousAttemptFormatted[] = []; // List of previous attempts. @@ -853,7 +854,7 @@ export class AddonModAssignSubmissionComponent implements OnInit { this.userSubmission = AddonModAssign.getSubmissionObjectFromAttempt(this.assign, lastAttempt); - if (this.assign.attemptreopenmethod !== this.attemptReopenMethodNone && this.userSubmission) { + if (this.assign.maxattempts !== 1 && this.userSubmission) { this.currentAttemptNumber = this.userSubmission.attemptnumber + 1; } diff --git a/src/addons/mod/assign/constants.ts b/src/addons/mod/assign/constants.ts index 61247971b7a..9a04c917eee 100644 --- a/src/addons/mod/assign/constants.ts +++ b/src/addons/mod/assign/constants.ts @@ -72,8 +72,8 @@ export const enum AddonModAssignGradingStates { * Constants on LMS starting with ASSIGN_ATTEMPT_REOPEN_METHOD_ */ export const enum AddonModAssignAttemptReopenMethodValues { - NONE = 'none', MANUAL = 'manual', + AUTOMATIC = 'automatic', UNTILPASS = 'untilpass', } diff --git a/src/addons/mod/assign/lang.json b/src/addons/mod/assign/lang.json index 168520e2fe0..42ba1b49f8e 100644 --- a/src/addons/mod/assign/lang.json +++ b/src/addons/mod/assign/lang.json @@ -14,6 +14,7 @@ "attemptheading": "Attempt {{$a.attemptnumber}}: {{$a.submissionsummary}}", "attempthistory": "Previous attempts", "attemptnumber": "Attempt number", + "attemptreopenmethod_automatic": "Automatically", "attemptreopenmethod_manual": "Manually", "attemptreopenmethod_untilpass": "Automatically until pass", "attemptreopenmethod": "Grant attempts",