--- loncom/homework/lonhomework.pm 2003/05/16 17:41:17 1.128 +++ loncom/homework/lonhomework.pm 2003/05/19 21:05:23 1.130 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.128 2003/05/16 17:41:17 albertel Exp $ +# $Id: lonhomework.pm,v 1.130 2003/05/19 21:05:23 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -214,9 +214,13 @@ sub check_access { my $maxtries = &Apache::lonnet::EXT("resource.$id.maxtries"); if ( $tries eq '' ) { $tries = '0'; } if ( $maxtries eq '' ) { $maxtries = '2'; } - if ($tries >= $maxtries) { $status = 'CANNOT_ANSWER'; } - if($Apache::lonhomework::history{"resource.$id.solved"}=~/^correct/ - && lc($Apache::lonhomework::problemstatus) ne 'no') { + if ($tries >= $maxtries) { $status = 'CANNOT_ANSWER'; } + # if (correct and show prob status) or excused then CANNOT_ANSWER + if(($Apache::lonhomework::history{"resource.$id.solved"}=~/^correct/ + && + lc($Apache::lonhomework::problemstatus) ne 'no') + || + $Apache::lonhomework::history{"resource.$id.solved"}=~/^excused/) { $status = 'CANNOT_ANSWER'; } } @@ -394,7 +398,7 @@ sub analyze { 'last problem'); my $subresult=&Apache::lonnet::ssi($request->uri, ('grade_target' => 'analyze'), - ('rndseed' => $i)); + ('rndseed' => $i+$rndseed)); &Apache::lonxml::debug(":$subresult:"); (my $garbage,$subresult)=split(/_HASH_REF__/,$subresult,2); my %analyze=&Apache::lonnet::str2hash($subresult); @@ -417,16 +421,27 @@ sub analyze { foreach my $part (keys(%allparts)) { if (defined(@{ $overall{$part.'.answer'} })) { $request->print('
Part '.$part.' | ||
'.join(' | ',@{ $answer }). - ' | |
'. + join(' | ',split('\0',$answer)). + ' | ('.$frequency{$answer}. + ') |
Part '.$part. - ' is not analyzabale at this time
'); + ' is not analyzable at this time'); } } + if (scalar(keys(%allparts)) == 0 ) { + $request->print('Found no analyzable parts in this problem, + currently only Numerical, Formula and String response + styles are supported.
'); + } &Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); &analyze_footer($request); &Apache::lonhomework::showhash(%overall); @@ -659,7 +674,7 @@ sub handler { &renderpage($request,$file); } elsif ($ENV{'form.problemmode'} eq 'EditXML') { &editxmlmode($request,$file); - } elsif ($ENV{'form.problemmode'} eq 'Answer Distribution') { + } elsif ($ENV{'form.problemmode'} eq 'Calculate answers') { &analyze($request,$file); } else { &renderpage($request,$file);