diff --git a/lib/WeBWorK/Utils.pm b/lib/WeBWorK/Utils.pm index 766904200f..f35898287f 100644 --- a/lib/WeBWorK/Utils.pm +++ b/lib/WeBWorK/Utils.pm @@ -215,15 +215,21 @@ sub sortAchievements (@achievements) { # Next sort by number. @achievements = sort { ($a->number || 0) <=> ($b->number || 0) } @achievements; - # Finally sort by category. + # Finally sort by category. Always place level achievements last. @achievements = sort { - if ($a->number && $b->number) { + if ($a->{category} eq 'level' && $b->{category} eq 'level') { + return 0; + } elsif ($a->{category} eq 'level') { + return 1; + } elsif ($b->{category} eq 'level') { + return -1; + } elsif ($a->number && $b->number) { return $a->number <=> $b->number; } elsif ($a->{category} eq $b->{category}) { return 0; - } elsif ($a->{category} eq 'secret' or $b->{category} eq 'level') { + } elsif ($a->{category} eq 'secret') { return -1; - } elsif ($a->{category} eq 'level' or $b->{category} eq 'secret') { + } elsif ($b->{category} eq 'secret') { return 1; } else { return $a->{category} cmp $b->{category}; diff --git a/templates/HelpFiles/InstructorAchievementList.html.ep b/templates/HelpFiles/InstructorAchievementList.html.ep index dc3db86284..078a882a5d 100644 --- a/templates/HelpFiles/InstructorAchievementList.html.ep +++ b/templates/HelpFiles/InstructorAchievementList.html.ep @@ -24,7 +24,7 @@
<%= maketext('Achievements are evaluated in the order shown below, with the exception of "level" achievements. ' - . 'Achievements in the "level" category are evaluated first and control the XP thresholds and rewards ' + . 'Achievements in the "level" category are evaluated last and control the XP thresholds and rewards ' . '(achievement items) for reaching each level. Achievements in the "secret" category are not shown to ' . 'students until they earn the achievement, and is used for fun/surprise achievements.') =%>