From d7a1b243cff9d9c0cde89e1ffa0615599c2302b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 28 Feb 2017 14:39:00 +0100 Subject: [PATCH] MOBILE-1987 assign: Use real lastattempt on reopenned submissions --- .../mod/assign/directives/submission.js | 29 ++++++++++++------- www/addons/mod/assign/services/helper.js | 5 ++-- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/www/addons/mod/assign/directives/submission.js b/www/addons/mod/assign/directives/submission.js index a1b95259b3b..375387240b6 100644 --- a/www/addons/mod/assign/directives/submission.js +++ b/www/addons/mod/assign/directives/submission.js @@ -302,6 +302,8 @@ angular.module('mm.addons.mod_assign') var isBlind = !!blindId, assign; + scope.previousAttempt = false; + if (!submitId) { submitId = $mmSite.getUserId(); isBlind = false; @@ -352,7 +354,13 @@ angular.module('mm.addons.mod_assign') scope.submissionStatusAvailable = true; scope.lastAttempt = response.lastattempt; - scope.previousAttempts = response.previousattempts; + if (response.previousattempts && response.previousattempts.length > 0) { + var previousAttempts = response.previousattempts.sort(function(a, b) { + return a.attemptnumber - b.attemptnumber; + }); + scope.previousAttempt = previousAttempts[previousAttempts.length - 1]; + } + scope.membersToSubmit = []; if (response.lastattempt) { scope.canSubmit = !scope.isSubmittedForGrading && !scope.submittedOffline && @@ -427,7 +435,13 @@ angular.module('mm.addons.mod_assign') if (scope.userSubmission) { if (!assign.teamsubmission || !response.lastattempt.submissiongroup || !assign.preventsubmissionnotingroup) { - scope.submissionPlugins = scope.userSubmission.plugins; + if (scope.previousAttempt && scope.previousAttempt.submission.plugins && + scope.userSubmission.status == mmaModAssignSubmissionStatusReopened) { + // Get latest attempt if avalaible. + scope.submissionPlugins = scope.previousAttempt.submission.plugins; + } else { + scope.submissionPlugins = scope.userSubmission.plugins; + } } } } @@ -516,11 +530,7 @@ angular.module('mm.addons.mod_assign') }); }); }).catch(function(message) { - if (message) { - $mmUtil.showErrorModal(message); - } else { - $mmUtil.showErrorModal('Error getting assigment data.'); - } + $mmUtil.showErrorModalDefault(message, 'Error getting assigment data.'); return $q.reject(); }).finally(function() { scope.loaded = true; @@ -614,15 +624,14 @@ angular.module('mm.addons.mod_assign') return; } - if (!scope.previousAttempts || !scope.previousAttempts.length) { + if (!scope.previousAttempt) { // Cannot access previous attempts, just go to edit. scope.goToEdit(); return; } var modal = $mmUtil.showModalLoading(), - previousAttempt = scope.previousAttempts[scope.previousAttempts.length - 1], - previousSubmission = $mmaModAssign.getSubmissionObjectFromAttempt(scope.assign, previousAttempt); + previousSubmission = $mmaModAssign.getSubmissionObjectFromAttempt(scope.assign, scope.previousAttempt); $mmaModAssignHelper.getSubmissionSizeForCopy(scope.assign, previousSubmission).catch(function() { // Error calculating size, return -1. diff --git a/www/addons/mod/assign/services/helper.js b/www/addons/mod/assign/services/helper.js index f43c1e8a936..fdb481f8668 100644 --- a/www/addons/mod/assign/services/helper.js +++ b/www/addons/mod/assign/services/helper.js @@ -22,7 +22,8 @@ angular.module('mm.addons.mod_assign') * @name $mmaModAssignHelper */ .factory('$mmaModAssignHelper', function($mmUtil, $mmaModAssignSubmissionDelegate, $q, $mmSite, $mmFS, $mmaModAssign, $mmGroups, - $mmFileUploader, mmaModAssignComponent, $mmaModAssignOffline, $mmaModAssignFeedbackDelegate) { + $mmFileUploader, mmaModAssignComponent, $mmaModAssignOffline, $mmaModAssignFeedbackDelegate, + mmaModAssignSubmissionStatusNew, mmaModAssignSubmissionStatusReopened) { var self = {}; @@ -41,7 +42,7 @@ angular.module('mm.addons.mod_assign') return false; } - if (submission.status == 'new' || submission.status == 'reopened') { + if (submission.status == mmaModAssignSubmissionStatusNew || submission.status == mmaModAssignSubmissionStatusReopened) { // It's a new submission, allow creating it in offline. return true; }