Diff for /loncom/homework/rankresponse.pm between versions 1.44 and 1.49

version 1.44, 2005/01/31 22:00:40 version 1.49, 2005/12/06 10:13:46
Line 166  sub displayanswers { Line 166  sub displayanswers {
     if (!defined(@{ $Apache::response::foilgroup{'names'} })) { return; }      if (!defined(@{ $Apache::response::foilgroup{'names'} })) { return; }
     my @names = @{ $Apache::response::foilgroup{'names'} };      my @names = @{ $Apache::response::foilgroup{'names'} };
     my @whichfoils = &whichfoils($max,$randomize);      my @whichfoils = &whichfoils($max,$randomize);
     my $result=&Apache::response::answer_header('rankresponse');  
     my @correctorder=&get_correct_order($tol,@whichfoils);      my @correctorder=&get_correct_order($tol,@whichfoils);
     foreach my $order (@correctorder) {      my $result;
  $result.=&Apache::response::answer_part('rankresponse',$order);      if ($Apache::lonhomework::type eq 'exam') {
    my @alphabet = ('A'..'Z');
    my $i=0;
    foreach my $order (@correctorder) {
       $result.=&Apache::response::answer_header('rankresponse',$i++);
       $result.=&Apache::response::answer_part('rankresponse',
       $alphabet[$order-1]);
       $result.=&Apache::response::answer_part('rankresponse',$order);
       $result.=&Apache::response::answer_footer('rankresponse');
    }
       } else {
    $result=&Apache::response::answer_header('rankresponse');
    foreach my $order (@correctorder) {
       $result.=&Apache::response::answer_part('rankresponse',$order);
    }
    $result.=&Apache::response::answer_footer('rankresponse');
     }      }
     $result.=&Apache::response::answer_footer('rankresponse');  
     return $result;      return $result;
 }  }
   
 sub check_response_order {  sub check_response_order {
     my (%responsehash)=@_;      my (%responsehash)=@_;
     my @order=sort(values(%responsehash));      my @order=sort( {$a <=> $b} values(%responsehash));
     my $lastvalue=0;      my $lastvalue=0;
     my $expected=1;      my $expected=1;
     my $malformed=0;      my $malformed=0;
Line 263  sub displayfoils { Line 276  sub displayfoils {
  foreach my $name (@whichfoils) {   foreach my $name (@whichfoils) {
     my $text=$Apache::response::foilgroup{$name.'.text'};      my $text=$Apache::response::foilgroup{$name.'.text'};
     my $value=shift(@correctorder);      my $value=shift(@correctorder);
     if ($target eq 'web') {$result.='<br />';} else {$result.=' \strut\\\\\strut ';}      if ($target eq 'web') {
     $result.=$value.':'.$text;   $result.='<br /><b>'.$value.':</b> '.$text;
       } else {
    $result.=' \strut\\\\\strut '.$value.':'.$text;
       }
  }   }
     } else {      } else {
  my $i = 0;   my $i = 0;
Line 425  sub end_foil { Line 441  sub end_foil {
  if ($value ne 'unused') {   if ($value ne 'unused') {
     my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);      my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
     &Apache::lonxml::debug("Got a name of :$name:");      &Apache::lonxml::debug("Got a name of :$name:");
     if (!$name) {      if ($name eq "") {
  &Apache::lonxml::error("Foils without names exist. This can cause problems to malfunction.");   &Apache::lonxml::warning("Foils without names exist. This can cause problems to malfunction.");
  $name=$Apache::lonxml::curdepth;   $name=$Apache::lonxml::curdepth;
     }      }
     &Apache::lonxml::debug("Using a name of :$name:");      &Apache::lonxml::debug("Using a name of :$name:");

Removed from v.1.44  
changed lines
  Added in v.1.49


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