--- loncom/interface/lonnavmaps.pm 2002/10/14 17:34:10 1.78 +++ loncom/interface/lonnavmaps.pm 2002/10/14 18:22:45 1.79 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.78 2002/10/14 17:34:10 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.79 2002/10/14 18:22:45 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1156,6 +1156,14 @@ sub new_handle { $curRes->duedate() > time()) { $color = $hurryUpColor; } + # Special case: If this is the last try, and there is + # more then one available, give a bit of urgency + my $tries = $curRes->tries($part); + my $maxtries = $curRes->maxtries($part); + if ($tries && $maxtries && $maxtries > 1 && + $maxtries - $tries == 1) { + $color = $hurryUpColor; + } if ($color ne "") { $colorizer = "bgcolor=\"$color\""; } @@ -1332,7 +1340,7 @@ sub getDescription { return "Open " . timeToHumanString($res->opendate($part)); } if ($status == $res->OPEN) { - if ($res->duedate()) { + if ($res->duedate($part)) { return "Due " . timeToHumanString($res->duedate($part)); } else { return "Open, no due date"; @@ -1354,9 +1362,15 @@ sub getDescription { return "Not yet graded."; } if ($status == $res->TRIES_LEFT) { - my $tries = $res->tries(); - my $maxtries = $res->maxtries(); - my $triesString = "($tries of $maxtries tries used)"; + my $tries = $res->tries($part); + my $maxtries = $res->maxtries($part); + my $triesString = ""; + if ($tries && $maxtries) { + $triesString = "($tries of $maxtries tries used)"; + if ($maxtries > 1 && $maxtries - $tries == 1) { + $triesString = "$triesString"; + } + } if ($res->duedate()) { return "Due " . timeToHumanString($res->duedate($part)) . " $triesString"; @@ -2830,7 +2844,7 @@ sub status { # If it's WRONG... if ($completionStatus == INCORRECT || $completionStatus == INCORRECT_BY_OVERRIDE) { # and there are TRIES LEFT: - if ($self->tries() < $self->maxtries()) { + if ($self->tries($part) < $self->maxtries($part) || !$self->maxtries($part)) { return TRIES_LEFT; } return INCORRECT; # otherwise, return orange; student can't fix this