diff --git a/lib/WeBWorK/AchievementItems/FullCreditSet.pm b/lib/WeBWorK/AchievementItems/FullCreditSet.pm index fa025c339f..0951ea2be9 100644 --- a/lib/WeBWorK/AchievementItems/FullCreditSet.pm +++ b/lib/WeBWorK/AchievementItems/FullCreditSet.pm @@ -25,6 +25,8 @@ sub can_use ($self, $set, $records, $c) { $grade += $problem->status * $problem->value; $total += $problem->value; } + return 0 unless $total; + $self->{old_grade} = 100 * wwRound(2, $grade / $total); return $self->{old_grade} == 100 ? 0 : 1; } diff --git a/lib/WeBWorK/AchievementItems/HalfCreditSet.pm b/lib/WeBWorK/AchievementItems/HalfCreditSet.pm index eb6861c9f1..ddfeaa3397 100644 --- a/lib/WeBWorK/AchievementItems/HalfCreditSet.pm +++ b/lib/WeBWorK/AchievementItems/HalfCreditSet.pm @@ -27,6 +27,8 @@ sub can_use ($self, $set, $records, $c) { $new_grade += ($problem->status > 0.5 ? 1 : $problem->status + 0.5) * $problem->value; $total += $problem->value; } + return 0 unless $total; + $self->{old_grade} = 100 * wwRound(2, $old_grade / $total); $self->{new_grade} = 100 * wwRound(2, $new_grade / $total); return $self->{old_grade} == 100 ? 0 : 1;