--- loncom/interface/lonnavmaps.pm 2002/03/15 16:31:10 1.28 +++ loncom/interface/lonnavmaps.pm 2002/03/15 21:56:11 1.30 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.28 2002/03/15 16:31:10 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.30 2002/03/15 21:56:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -178,10 +178,11 @@ sub parmval { # 1: not attempted # 2: attempted but wrong, or incorrect by instructor # 3: solved or correct by instructor -# "excused" needs to be supported, but is not yet. Could be code=4. +# 4: partially correct (one or more parts correct) +# "excused" needs to be supported, but is not yet. sub astatus { my $rid=shift; - my $code=1; + my $code=0; my $ctext=''; $rid=~/(\d+)\.(\d+)/; my $symb=&Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'. @@ -238,13 +239,14 @@ sub astatus { my $status=$returnhash{'resource.'.$_.'.solved'}; if ($status eq 'correct_by_student') { - unless ($code==2) { $code=3; } + if ($code==0||$code==3) { $code=3; } else { $code=4; } $ctext.=' solved'; } elsif ($status eq 'correct_by_override') { - unless ($code==2) { $code=3; } + if ($code==0||$code==3) { $code=3; } else { $code=4; } $ctext.=' override'; } elsif ($status eq 'incorrect_attempted') { - $code=2; + if ($code!=4 && $code!=3) { $code=2; } + if ($code==3) { $code=4; } $ctext.=' ('. ($returnhash{'resource.'.$_.'.tries'}? $returnhash{'resource.'.$_.'.tries'}:'0'); @@ -252,11 +254,14 @@ sub astatus { if ($numtries) { $ctext.='/'.$numtries.' tries'; } $ctext.=')'; } elsif ($status eq 'incorrect_by_override') { - $code=2; + if ($code!=4 && $code!=3) { $code=2; } + if ($code==3) { $code=4; } $ctext.=' override'; } elsif ($status eq 'excused') { - unless ($code==2) { $code=3; } + if ($code==0||$code==3) { $code=3; } else { $code=4; } $ctext.=' excused'; + } else { + if ($code==0) { $code=1; } } } @@ -277,6 +282,8 @@ sub tracetable { if ($hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$rid}}} eq 'sequence') { $tprefix='h'; + } else { + #if it's a page we need to still pull out the problems } if (defined($rows[$sofar])) { $rows[$sofar].='&'.$tprefix.$rid; @@ -596,6 +603,8 @@ sub handler { } if ($code eq '3') { $add=''; + } elsif ($code eq '4') { + $add=''; } else { $add=''; if ($tcode eq '2') { @@ -611,7 +620,7 @@ sub handler { if ($code eq '1') { $hwke=' ('.$ctext.')'; } - if ($code eq '2') { + if ($code eq '2' || $code eq '4') { $hwk=''; $hwke=' ('.$ctext.')'; }