Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.126.2.2 and 1.129

version 1.126.2.2, 2004/02/26 18:24:24 version 1.129, 2004/02/13 15:09:52
Line 29 Line 29
 package Apache::caparesponse;  package Apache::caparesponse;
 use strict;  use strict;
 use capa;  use capa;
   use Apache::lonlocal;
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::caparesponse',('caparesponse','numericalresponse','stringresponse','formularesponse'));      &Apache::lonxml::register('Apache::caparesponse',('caparesponse','numericalresponse','stringresponse','formularesponse'));
Line 179  sub end_numericalresponse { Line 180  sub end_numericalresponse {
     my $unit=&Apache::lonxml::get_param_var('unit',$parstack,      my $unit=&Apache::lonxml::get_param_var('unit',$parstack,
     $safeeval);      $safeeval);
     if ($target eq 'web') {      if ($target eq 'web') {
  $result="<br />The correct answer is ";   $result="<br />".&mt('The correct answer is')." ";
     }      }
     for (my $i=0; $i <= $#answers; $i++) {      for (my $i=0; $i <= $#answers; $i++) {
  my $answer=$answers[$i];   my $answer=$answers[$i];
Line 383  sub get_table_sizes { Line 384  sub get_table_sizes {
  my $cell_width_real=0;   my $cell_width_real=0;
  if ($member=~/(\d*)\.?(\d*)(E|e)(\+|-)?(\d*)/) {   if ($member=~/(\d*)\.?(\d*)(E|e)(\+|-)?(\d*)/) {
     $cell_width_real=(length($1)+length($2)+length($5)+9)*$scale;      $cell_width_real=(length($1)+length($2)+length($5)+9)*$scale;
  } elsif ($member=~/(\d*)\.(\d*)/) {   } elsif ($member=~/(\d*)\.?(\d*)/) {
     $cell_width_real=(length($1)+length($2)+3)*$scale;      $cell_width_real=(length($1)+length($2)+2)*$scale;
  } else {   } else {
     $cell_width_real=(length($member)+1)*$scale;      $cell_width_real=(length($member)+1)*$scale;
  }   }
  if ($cell_width_real>$cell_width) {$cell_width=$cell_width_real;}   if ($cell_width_real>$cell_width) {$cell_width=$cell_width_real;}
     }      }
     $cell_width+=8;       $cell_width+=8;
     my $textwidth;      $ENV{'form.textwidth'}=~/(\d+)/;
     if ($ENV{'form.textwidth'} ne '') {      my $textwidth=$1;
  $ENV{'form.textwidth'}=~/(\d*)\.?(\d*)/;  
  $textwidth=$1.'.'.$2;  
     } else {  
  $ENV{'textwidth'}=~/(\d+)\.?(\d*)/;  
  $textwidth=$1.'.'.$2;  
     }  
     my $bubbles_per_line=int($textwidth/$cell_width);      my $bubbles_per_line=int($textwidth/$cell_width);
     if (($bubbles_per_line > $number_of_bubbles/2) && ($number_of_bubbles % 2==0)) {$bubbles_per_line=$number_of_bubbles/2;}  
     my $number_of_tables = int($number_of_bubbles/$bubbles_per_line);      my $number_of_tables = int($number_of_bubbles/$bubbles_per_line);
     my @table_range = ();      my @table_range = ();
     for (my $i=0;$i<$number_of_tables;$i++) {push @table_range,$bubbles_per_line;}      for (my $i=0;$i<$number_of_tables;$i++) {push @table_range,$bubbles_per_line;}
Line 458  sub make_numerical_bubbles { Line 452  sub make_numerical_bubbles {
     @bubble_values=sort {$a <=> $b} (@bubble_values,$answer);      @bubble_values=sort {$a <=> $b} (@bubble_values,$answer);
     &Apache::lonxml::debug("Answer was :$answer: returning :".$#bubble_values.": whih are :".join(':',@bubble_values));      &Apache::lonxml::debug("Answer was :$answer: returning :".$#bubble_values.": whih are :".join(':',@bubble_values));
     &Math::Random::random_set_seed(@oldseed);      &Math::Random::random_set_seed(@oldseed);
     if (defined($format) && $format ne '') {  
  foreach my $value (@bubble_values) {  
     $value=&format_number($value,$format,$target);  
  }  
     }  
     return @bubble_values;      return @bubble_values;
  }   }
  if (defined($$incorrect[0]) &&   if (defined($$incorrect[0]) &&
Line 536  sub start_stringresponse { Line 525  sub start_stringresponse {
  [['cs','Case Sensitive'],['ci','Case Insensitive'],   [['cs','Case Sensitive'],['ci','Case Insensitive'],
   ['mc','Case Insensitive, Any Order'],    ['mc','Case Insensitive, Any Order'],
   ['re','Regular Expression']],$token);    ['re','Regular Expression']],$token);
    $result.=&Apache::edit::checked_arg('Answer Display:','answerdisplay',
       [['inline','Inline']],$token);
  $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row();   $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row();
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  my $constructtag;   &Apache::edit::get_new_args($token,$parstack,
  $constructtag=&Apache::edit::get_new_args($token,$parstack,      $safeeval,'answer','type');
   $safeeval,'answer',   my $answerdisplay=$ENV{'form.'.&Apache::edit::html_element_name('answerdisplay')};
   'type');   if ($answerdisplay) {
  if ($constructtag) {      $token->[2]->{'answerdisplay'}=$answerdisplay;
     $result = &Apache::edit::rebuild_tag($token);   } else {
     $result.=&Apache::edit::handle_insert();      delete $token->[2]->{'answerdisplay'};
  }   }
    $result = &Apache::edit::rebuild_tag($token);
    $result.=&Apache::edit::handle_insert();
     } elsif ($target eq 'answer' || $target eq 'grade') {      } elsif ($target eq 'answer' || $target eq 'grade') {
  &Apache::response::reset_params();   &Apache::response::reset_params();
     }      }
Line 560  sub end_stringresponse { Line 553  sub end_stringresponse {
     my $id=$Apache::inputtags::response[-1];      my $id=$Apache::inputtags::response[-1];
     my $answer=&Apache::lonxml::get_param('answer',$parstack,$safeeval);      my $answer=&Apache::lonxml::get_param('answer',$parstack,$safeeval);
     my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval);      my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval);
       my $answerdisplay=&Apache::lonxml::get_param('answerdisplay',$parstack,$safeeval);
     &Apache::lonxml::debug("current $answer ".$token->[2]);      &Apache::lonxml::debug("current $answer ".$token->[2]);
     if (!$Apache::lonxml::default_homework_loaded) {      if (!$Apache::lonxml::default_homework_loaded) {
  &Apache::lonxml::default_homework_load($safeeval);   &Apache::lonxml::default_homework_load($safeeval);
Line 622  sub end_stringresponse { Line 616  sub end_stringresponse {
  my $status = $Apache::inputtags::status['-1'];   my $status = $Apache::inputtags::status['-1'];
  if (  &Apache::response::show_answer() ) {   if (  &Apache::response::show_answer() ) {
     if ($target eq 'web') {      if ($target eq 'web') {
  $result="<br />The correct answer is ".$answer;   $result=($answerdisplay eq 'inline'?'':"<br />".&mt('The correct answer is')." ")
       .$answer;
 #    join(', ',@answers).".<br />";  #    join(', ',@answers).".<br />";
     }      }
  }   }

Removed from v.1.126.2.2  
changed lines
  Added in v.1.129


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