--- loncom/interface/lonnavmaps.pm 2002/10/14 16:43:58 1.77
+++ loncom/interface/lonnavmaps.pm 2002/10/14 18:48:13 1.81
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.77 2002/10/14 16:43:58 bowersj2 Exp $
+# $Id: lonnavmaps.pm,v 1.81 2002/10/14 18:48:13 bowersj2 Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -823,7 +823,7 @@ sub new_handle {
# Initialize the nav map
my $navmap = Apache::lonnavmaps::navmap->new(
$ENV{"request.course.fn"}.".db",
- $ENV{"request.course.fn"}."_parms.db", 1);
+ $ENV{"request.course.fn"}."_parms.db", 1, 1);
if (!defined($navmap)) {
@@ -977,6 +977,7 @@ sub new_handle {
my $now = time();
my $in24Hours = $now + 24 * 60 * 60;
my $depth = 1;
+ my $displayedHereMarker = 0;
# We know the first thing is a BEGIN_MAP (see "$self->{STARTED}"
# code in iterator->next), so ignore the first one
@@ -1103,6 +1104,10 @@ sub new_handle {
'symb='.&Apache::lonnet::escape($curRes->symb()).
'"';
my $title = $curRes->title();
+ if (!$title) {
+ $title = $curRes->src();
+ $title = substr ($title, rindex($title, "/") + 1);
+ }
my $partLabel = "";
my $newBranchText = "";
@@ -1155,6 +1160,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\"";
}
@@ -1178,9 +1191,10 @@ sub new_handle {
my $curMarkerEnd = "";
# Is this the current resource?
- if ($curRes->src() eq $currenturl) {
+ if ($curRes->src() eq $currenturl && !$displayedHereMarker) {
$curMarkerBegin = '> ';
$curMarkerEnd = ' <';
+ $displayedHereMarker = 1;
}
if ($curRes->is_problem() && $part ne "0" && !$condensed) {
@@ -1330,7 +1344,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";
@@ -1352,9 +1366,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";
@@ -2828,7 +2848,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