Skip to content

Commit 97bb648

Browse files
authored
Merge pull request #949 from dpalou/MOBILE-1987-pau
MOBILE-1987 assign: Use real lastattempt on reopenned submissions
2 parents 9901e76 + d7a1b24 commit 97bb648

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

www/addons/mod/assign/directives/submission.js

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ angular.module('mm.addons.mod_assign')
302302
var isBlind = !!blindId,
303303
assign;
304304

305+
scope.previousAttempt = false;
306+
305307
if (!submitId) {
306308
submitId = $mmSite.getUserId();
307309
isBlind = false;
@@ -352,7 +354,13 @@ angular.module('mm.addons.mod_assign')
352354
scope.submissionStatusAvailable = true;
353355

354356
scope.lastAttempt = response.lastattempt;
355-
scope.previousAttempts = response.previousattempts;
357+
if (response.previousattempts && response.previousattempts.length > 0) {
358+
var previousAttempts = response.previousattempts.sort(function(a, b) {
359+
return a.attemptnumber - b.attemptnumber;
360+
});
361+
scope.previousAttempt = previousAttempts[previousAttempts.length - 1];
362+
}
363+
356364
scope.membersToSubmit = [];
357365
if (response.lastattempt) {
358366
scope.canSubmit = !scope.isSubmittedForGrading && !scope.submittedOffline &&
@@ -427,7 +435,13 @@ angular.module('mm.addons.mod_assign')
427435
if (scope.userSubmission) {
428436
if (!assign.teamsubmission || !response.lastattempt.submissiongroup ||
429437
!assign.preventsubmissionnotingroup) {
430-
scope.submissionPlugins = scope.userSubmission.plugins;
438+
if (scope.previousAttempt && scope.previousAttempt.submission.plugins &&
439+
scope.userSubmission.status == mmaModAssignSubmissionStatusReopened) {
440+
// Get latest attempt if avalaible.
441+
scope.submissionPlugins = scope.previousAttempt.submission.plugins;
442+
} else {
443+
scope.submissionPlugins = scope.userSubmission.plugins;
444+
}
431445
}
432446
}
433447
}
@@ -516,11 +530,7 @@ angular.module('mm.addons.mod_assign')
516530
});
517531
});
518532
}).catch(function(message) {
519-
if (message) {
520-
$mmUtil.showErrorModal(message);
521-
} else {
522-
$mmUtil.showErrorModal('Error getting assigment data.');
523-
}
533+
$mmUtil.showErrorModalDefault(message, 'Error getting assigment data.');
524534
return $q.reject();
525535
}).finally(function() {
526536
scope.loaded = true;
@@ -614,15 +624,14 @@ angular.module('mm.addons.mod_assign')
614624
return;
615625
}
616626

617-
if (!scope.previousAttempts || !scope.previousAttempts.length) {
627+
if (!scope.previousAttempt) {
618628
// Cannot access previous attempts, just go to edit.
619629
scope.goToEdit();
620630
return;
621631
}
622632

623633
var modal = $mmUtil.showModalLoading(),
624-
previousAttempt = scope.previousAttempts[scope.previousAttempts.length - 1],
625-
previousSubmission = $mmaModAssign.getSubmissionObjectFromAttempt(scope.assign, previousAttempt);
634+
previousSubmission = $mmaModAssign.getSubmissionObjectFromAttempt(scope.assign, scope.previousAttempt);
626635

627636
$mmaModAssignHelper.getSubmissionSizeForCopy(scope.assign, previousSubmission).catch(function() {
628637
// Error calculating size, return -1.

www/addons/mod/assign/services/helper.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ angular.module('mm.addons.mod_assign')
2222
* @name $mmaModAssignHelper
2323
*/
2424
.factory('$mmaModAssignHelper', function($mmUtil, $mmaModAssignSubmissionDelegate, $q, $mmSite, $mmFS, $mmaModAssign, $mmGroups,
25-
$mmFileUploader, mmaModAssignComponent, $mmaModAssignOffline, $mmaModAssignFeedbackDelegate) {
25+
$mmFileUploader, mmaModAssignComponent, $mmaModAssignOffline, $mmaModAssignFeedbackDelegate,
26+
mmaModAssignSubmissionStatusNew, mmaModAssignSubmissionStatusReopened) {
2627

2728
var self = {};
2829

@@ -41,7 +42,7 @@ angular.module('mm.addons.mod_assign')
4142
return false;
4243
}
4344

44-
if (submission.status == 'new' || submission.status == 'reopened') {
45+
if (submission.status == mmaModAssignSubmissionStatusNew || submission.status == mmaModAssignSubmissionStatusReopened) {
4546
// It's a new submission, allow creating it in offline.
4647
return true;
4748
}

0 commit comments

Comments
 (0)