Diff for /loncom/homework/matchresponse.pm between versions 1.27 and 1.28

version 1.27, 2003/10/15 19:40:42 version 1.28, 2003/10/27 19:27:09
Line 25 Line 25
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # 2/21 Guy  
   
 package Apache::matchresponse;  package Apache::matchresponse;
 use strict;  use strict;
Line 66  sub start_matchresponse { Line 65  sub start_matchresponse {
      $safeeval,'max',       $safeeval,'max',
      'randomize');       'randomize');
  if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }   if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
       } elsif ($target eq 'analyze') {
    my $part_id="$Apache::inputtags::part.$id";
    push (@{ $Apache::lonhomework::analyze{"parts"} },$part_id);
     }      }
     return $result;      return $result;
 }  }
Line 236  sub start_foilgroup { Line 238  sub start_foilgroup {
 sub end_foilgroup {  sub end_foilgroup {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;      my $result;
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') {      if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') {
  my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');   my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');
  my $randomize = &Apache::lonxml::get_param('randomize',$parstack,   my $randomize = &Apache::lonxml::get_param('randomize',$parstack,
    $safeeval,'-2');     $safeeval,'-2');
Line 246  sub end_foilgroup { Line 248  sub end_foilgroup {
     $result=&displayanswers($max,$randomize);      $result=&displayanswers($max,$randomize);
  } elsif ( $target eq 'grade') {   } elsif ( $target eq 'grade') {
     &grade_response($max,$randomize);      &grade_response($max,$randomize);
    } elsif ( $target eq 'analyze') {
       my @shown=&whichfoils($max,$randomize);
       &Apache::response::analyze_store_foilgroup(\@shown,
          ['text','value']);
       #FIXME need to store options in some way
  }   }
  &Apache::lonxml::increment_counter(&getfoilcounts($max));   &Apache::lonxml::increment_counter(&getfoilcounts($max));
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
Line 486  sub end_conceptgroup { Line 493  sub end_conceptgroup {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     $Apache::matchresponse::conceptgroup=0;      $Apache::matchresponse::conceptgroup=0;
     my $result='';      my $result='';
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
  #if not there aren't any foils to display and thus no question   $target eq 'tex' || $target eq 'analyze') {
  if (defined(@{ $Apache::response::conceptgroup{'names'} })) {   &Apache::response::pick_foil_for_concept($target,
     my @names = @{ $Apache::response::conceptgroup{'names'} };   ['value','text','location'],
     my $pick=int(&Math::Random::random_uniform() * ($#names+1));   \%Apache::hint::match,
     my $name=$names[$pick];   $parstack,$safeeval);
     push @{ $Apache::response::foilgroup{'names'} }, $name;  
     $Apache::response::foilgroup{"$name.value"} =  
  $Apache::response::conceptgroup{"$name.value"};  
     $Apache::response::foilgroup{"$name.text"} =  
  $Apache::response::conceptgroup{"$name.text"};  
     $Apache::response::foilgroup{"$name.location"} =  
  $Apache::response::conceptgroup{"$name.location"};  
     my $concept = &Apache::lonxml::get_param('concept',$parstack,  
      $safeeval);  
     $Apache::response::foilgroup{"$name.concept"} = $concept;  
     &Apache::lonxml::debug("Selecting $name in $concept");  
     if ($target eq 'web') {  
  my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";  
  push(@{ $Apache::hint::match{"$part_id.concepts"} },  
      $concept);  
  $Apache::hint::match{"$part_id.concept.$concept"}=  
     $Apache::response::conceptgroup{'names'};  
     }  
  }  
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result=&Apache::edit::end_table();   $result=&Apache::edit::end_table();
     }      }
Line 525  sub insert_conceptgroup { Line 513  sub insert_conceptgroup {
 sub start_foil {  sub start_foil {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result='';      my $result='';
     if ($target eq 'web' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
  &Apache::lonxml::startredirection;   &Apache::lonxml::startredirection;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result=&Apache::edit::tag_start($target,$token,"Foil");   $result=&Apache::edit::tag_start($target,$token,"Foil");
Line 557  sub end_foil { Line 545  sub end_foil {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $text ='';      my $text ='';
     my $result = '';      my $result = '';
     if ($target eq 'web' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
  $text=&Apache::lonxml::endredirection;   $text=&Apache::lonxml::endredirection;
     }      }
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
    $target eq 'tex' || $target eq 'analyze') {
  my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval);   my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval);
  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);

Removed from v.1.27  
changed lines
  Added in v.1.28


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