@@ -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.
0 commit comments