Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.242 and 1.243

version 1.242, 2010/10/18 19:47:39 version 1.243, 2010/12/16 16:01:08
Line 451  sub check_submission { Line 451  sub check_submission {
  my ($result,@msgs) =    my ($result,@msgs) = 
     &Apache::run::run("&caparesponse_check_list()",$safeeval);      &Apache::run::run("&caparesponse_check_list()",$safeeval);
  &Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0));   &Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0));
           
  &Apache::lonxml::debug('msgs are '.join(':',@msgs));   &Apache::lonxml::debug('msgs are '.join(':',@msgs));
  my ($awards)=split(/:/,$result);   my ($awards)=split(/:/,$result);
  my @awards= split(/,/,$awards);   my @awards= split(/,/,$awards);
Line 1223  sub end_stringresponse { Line 1224  sub end_stringresponse {
                         $$args_ref{'type'} = 'ci';                          $$args_ref{'type'} = 'ci';
                     }                      }
     &add_in_tag_answer($parstack,$safeeval);      &add_in_tag_answer($parstack,$safeeval);
     my (@final_awards,@final_msgs,@names);      my (@final_awards,@final_msgs,@names,%ansstring);
     foreach my $name (keys(%answer)) {      foreach my $name (keys(%answer)) {
  &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} }));   &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} }));
  ${$safeeval->varglob('LONCAPA::CAPAresponse_answer')}=dclone($answer{$name});   ${$safeeval->varglob('LONCAPA::CAPAresponse_answer')}=dclone($answer{$name});
  my ($result, @msgs)=&Apache::run::run("&caparesponse_check_list()",$safeeval);   my ($result, @msgs)=&Apache::run::run("&caparesponse_check_list()",$safeeval);
                         if ($$args_ref{'type'} =~ /^c[si]$/) {                          if ($$args_ref{'type'} =~ /^c[si]$/) {
                               $ansstring{$name} = pop(@msgs);
                           }
                           if ($$args_ref{'type'} =~ /^c[si]$/) {
                             my $control_chars_removed = pop(@msgs);                              my $control_chars_removed = pop(@msgs);
                             my $error = pop(@msgs);                              my $error = pop(@msgs);
                             if (($error ne '') ||                               if (($error ne '') || 
                                 ($control_chars_removed ne '')) {                                  ($control_chars_removed ne '')) {
                                 my ($symb,$courseid,$domain,$name) =                                  my ($symb,$courseid,$sdomain,$sname) =
                                     &Apache::lonnet::whichuser();                                      &Apache::lonnet::whichuser();
                                 if ($control_chars_removed ne '') {                                  if ($control_chars_removed ne '') {
                                     my $showresponse = $response;                                      my $showresponse = $response;
Line 1244  sub end_stringresponse { Line 1248  sub end_stringresponse {
                                         my @lines = split(/[\r\n\f]+/,$showresponse);                                          my @lines = split(/[\r\n\f]+/,$showresponse);
                                         $showresponse = join('\\n',@lines);                                          $showresponse = join('\\n',@lines);
                                     }                                      }
                                     &Apache::lonnet::logthis("Stringresponse grading: control characters stripped from submission ".$showresponse." for $name:$domain in $courseid for part: $part response: $id and symb: $symb");                                      &Apache::lonnet::logthis("Stringresponse grading: control characters stripped from submission ".$showresponse." for $sname:$sdomain in $courseid for part: $part response: $id and symb: $symb");
                                     $Apache::lonhomework::results{"resource.$part.$id.submission"} = $response;                                      $Apache::lonhomework::results{"resource.$part.$id.submission"} = $response;
                                 }                                  }
                                 if ($error ne '') {                                  if ($error ne '') {
                                     &Apache::lonnet::logthis("Stringresponse grading error: $error for $name:$domain in $courseid for part: $part response: $id and symb: $symb");                                      &Apache::lonnet::logthis("Stringresponse grading error: $error for $sname:$sdomain in $courseid for part: $part response: $id and symb: $symb");
                                 }                                  }
                             }                              }
                         }                          }
Line 1266  sub end_stringresponse { Line 1270  sub end_stringresponse {
  &Apache::inputtags::finalizeawards(\@final_awards,   &Apache::inputtags::finalizeawards(\@final_awards,
    \@final_msgs,     \@final_msgs,
    \@names,1);     \@names,1);
                       if (keys(%ansstring) > 0) {
                           $Apache::lonhomework::results{"resource.$part.$id.answerstring"} = &Apache::lonnet::hash2str(%ansstring);
                       }
  }   }
                 if (($ad eq 'INCORRECT' || $ad eq 'APPROX_ANS' ||                  if (($ad eq 'INCORRECT' || $ad eq 'APPROX_ANS' ||
                      $ad eq 'EXACT_ANS')) {                       $ad eq 'EXACT_ANS')) {
Line 1317  sub end_stringresponse { Line 1324  sub end_stringresponse {
     if ($target eq 'answer') {      if ($target eq 'answer') {
  $result.=&Apache::response::answer_part('stringresponse',   $result.=&Apache::response::answer_part('stringresponse',
  $element);   $element);
                           if ($env{'form.grade_retrieveanswers'}) {
                               $env{'form.grade_answers.resource.'.$part.'.'.$id} = $element;
                           }
     } elsif ($target eq 'analyze') {      } elsif ($target eq 'analyze') {
  push (@{ $Apache::lonhomework::analyze{"$part.$id.answer"}{$name}[$i] },   push (@{ $Apache::lonhomework::analyze{"$part.$id.answer"}{$name}[$i] },
       $element);        $element);

Removed from v.1.242  
changed lines
  Added in v.1.243


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>