version 1.1, 2002/11/14 21:36:23
|
version 1.4, 2002/11/19 21:11:25
|
Line 60 sub handler {
|
Line 60 sub handler {
|
# Create the nav map |
# Create the nav map |
my $navmap = Apache::lonnavmaps::navmap->new( |
my $navmap = Apache::lonnavmaps::navmap->new( |
$ENV{"request.course.fn"}.".db", |
$ENV{"request.course.fn"}.".db", |
$ENV{"request.course.fn"}."_parms.db", 0, 0); |
$ENV{"request.course.fn"}."_parms.db", 1, 0); |
|
|
|
# Keep this hash in sync with %statusIconMap in lonnavmaps; they |
|
# should match color/icon |
|
my $res = $navmap->firstResource(); # temp resource to access constants |
|
|
|
my $green = "#AAFFAA"; |
|
my $red = "#FFAAAA"; |
|
my $yellow = "#FFFFAA"; |
|
my $orange = "#FFBB88"; |
|
my $neutral = ""; |
|
my %statusColorMap = |
|
( $res->NETWORK_FAILURE => $neutral, |
|
$res->NOTHING_SET => $neutral, |
|
$res->CORRECT => $green, |
|
$res->EXCUSED => $green, |
|
$res->PAST_DUE_NO_ANSWER => $orange, |
|
$res->PAST_DUE_ANSWER_LATER => $orange, |
|
$res->ANSWER_OPEN => $orange, |
|
$res->OPEN_LATER => $neutral, |
|
$res->TRIES_LEFT => $neutral, |
|
$res->INCORRECT => $orange, |
|
$res->OPEN => $yellow, |
|
$res->ATTEMPTED => $yellow ); |
|
|
if (!defined($navmap)) { |
if (!defined($navmap)) { |
my $requrl = $r->uri; |
my $requrl = $r->uri; |
$ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; |
$ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; |
Line 69 sub handler {
|
Line 92 sub handler {
|
} |
} |
|
|
# Header |
# Header |
$r->print(&Apache::loncommon::bodytag('Navigate Course Map','', |
$r->print(&Apache::loncommon::bodytag('Quick Score Display','', |
'')); |
'')); |
|
|
|
$navmap->init(); |
|
|
# End navmap using boilerplate |
# End navmap using boilerplate |
|
|
my $iterator = $navmap->getIterator(undef, undef, undef, 1); |
my $iterator = $navmap->getIterator(undef, undef, undef, 1); |
my $depth = 1; |
my $depth = 1; |
$iterator->next(); # ignore first BEGIN_MAP |
$iterator->next(); # ignore first BEGIN_MAP |
my $curRes = $iterator->next(); |
my $curRes = $iterator->next(); |
|
my $totalParts = 0; |
|
my $totalRight = 0; |
|
my $totalCurrentlyPossible = 0; |
|
|
|
$r->print("<div width=\"50%\">\n"); # use this to format the col |
|
|
while ( $depth > 0 ) { |
while ( $depth > 0 ) { |
if ($curRes == $iterator->BEGIN_MAP()) {$depth++;} |
if ($curRes == $iterator->BEGIN_MAP()) {$depth++;} |
Line 85 sub handler {
|
Line 115 sub handler {
|
|
|
if (ref($curRes) && $curRes->is_problem()) { |
if (ref($curRes) && $curRes->is_problem()) { |
my $title = $curRes->compTitle(); |
my $title = $curRes->compTitle(); |
$r->print($title . '<br />' . "\n"); |
my $stack = $iterator->getStack(); |
|
my $src = Apache::lonnavmaps::getLinkForResource($stack); |
|
my $srcHasQuestion = $src =~ /\?/; |
|
my $link = $src. |
|
($srcHasQuestion?'&':'?') . |
|
'symb='.&Apache::lonnet::escape($curRes->symb()). |
|
'"'; |
|
my $parts = $curRes->parts(); |
|
my $multipart = scalar(@{$parts}) > 1; |
|
|
|
for my $part (@{$parts}) { |
|
if ($multipart && $part eq '0') { next; } |
|
$totalParts++; |
|
|
|
my $status = $curRes->status($part); |
|
my $color = $statusColorMap{$status}; |
|
if ($color eq $green) { # I'm being bad here... ;-) |
|
$totalRight++; $totalCurrentlyPossible++; |
|
} |
|
if ($color eq $yellow || $color eq $orange) { |
|
$totalCurrentlyPossible++; |
|
} |
|
|
|
$r->print("<div style=\"background-color: $color\" width=\"100%\">" . |
|
"<nobr><a href=\"$link\">$title" . |
|
($multipart ? ', ' . $part : '') . '</a></nobr></div>' |
|
."\n"); |
|
|
|
if (!($totalParts % 20)) { $r->rflush(); } |
|
} |
} |
} |
|
|
$curRes = $iterator->next(); |
$curRes = $iterator->next(); |
} |
} |
|
|
|
$r->print("<br><hr>\n"); |
|
$r->print("<div width=\"100%\" align=\"right\">"); |
|
$r->print("Total Parts Correct: <b>$totalRight</b><br>"); |
|
$r->print("Number Of Parts Possibly Correct: <b>$totalCurrentlyPossible</b><br>"); |
|
$r->print("Total Parts In Course: <b>$totalParts</b></div></div>\n\n"); |
|
|
$r->print("</body></html>"); |
$r->print("</body></html>"); |
|
|
|
$navmap->untieHashes(); |
|
|
return OK; |
return OK; |
} |
} |
|
|