Diff for /loncom/homework/optionresponse.pm between versions 1.92 and 1.93

version 1.92, 2003/10/24 18:07:04 version 1.93, 2003/10/27 19:27:09
Line 25 Line 25
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # 2/21 Guy  
 # 01/18 Alex  
 package Apache::optionresponse;  package Apache::optionresponse;
 use strict;  use strict;
 use Apache::response;  use Apache::response;
Line 63  sub start_optionresponse { Line 61  sub start_optionresponse {
   } elsif ($target eq 'meta') {    } elsif ($target eq 'meta') {
     $result=&Apache::response::meta_package_write('optionresponse');      $result=&Apache::response::meta_package_write('optionresponse');
   } elsif ($target eq 'analyze') {    } elsif ($target eq 'analyze') {
     my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";      my $part_id="$Apache::inputtags::part.$id";
     push (@{ $Apache::lonhomework::analyze{"parts"} },$part_id);      push (@{ $Apache::lonhomework::analyze{"parts"} },$part_id);
   }    }
   return $result;    return $result;
Line 166  sub end_foilgroup { Line 164  sub end_foilgroup {
     } elsif ( $target eq 'answer') {      } elsif ( $target eq 'answer') {
       $result.=&displayanswers($max,$randomize,@opt);        $result.=&displayanswers($max,$randomize,@opt);
     } elsif ( $target eq 'analyze') {      } elsif ( $target eq 'analyze') {
       my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";   my @shown = &whichfoils($max,$randomize);
       foreach my $name (@{ $Apache::response::foilgroup{'names'} }) {   &Apache::response::analyze_store_foilgroup(\@shown,['text','value']);
  if (defined($Apache::lonhomework::analyze{"$part_id.foil.value.$name"})) { next; }   my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";
  push (@{ $Apache::lonhomework::analyze{"$part_id.foils"} },$name);   push (@{ $Apache::lonhomework::analyze{"$part_id.options"} },@opt);
  $Apache::lonhomework::analyze{"$part_id.foil.value.$name"} =  
   $Apache::response::foilgroup{"$name.value"};  
  $Apache::lonhomework::analyze{"$part_id.foil.text.$name"} =  
   $Apache::response::foilgroup{"$name.text"};  
       }  
       push (@{ $Apache::lonhomework::analyze{"$part_id.options"} },@opt);  
       push (@{ $Apache::lonhomework::analyze{"$part_id.shown"} },&whichfoils($max,$randomize));  
     } elsif ( $target eq 'grade') {      } elsif ( $target eq 'grade') {
       if ( defined $ENV{'form.submitted'}) {        if ( defined $ENV{'form.submitted'}) {
  my @whichopt = &whichfoils($max,$randomize);   my @whichopt = &whichfoils($max,$randomize);
Line 526  sub end_conceptgroup { Line 517  sub end_conceptgroup {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   $Apache::optionresponse::conceptgroup=0;    $Apache::optionresponse::conceptgroup=0;
   my $result='';    my $result='';
   if ($target eq 'web' || $target eq 'grade' || $target eq 'answer'    if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
       || $target eq 'tex' || $target eq 'analyze') {        $target eq 'tex' || $target eq 'analyze') {
     #if not there aren't any foils to display and thus no question      #if not there aren't any foils to display and thus no question
     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::option,
       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 'analyze') {  
  my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";  
         push (@{ $Apache::lonhomework::analyze{"$part_id.concepts"} },  
       $concept);  
  $Apache::lonhomework::analyze{"$part_id.concept.$concept"}=  
   $Apache::response::conceptgroup{'names'};  
  foreach my $name (@{ $Apache::response::conceptgroup{'names'} }) {  
   push (@{ $Apache::lonhomework::analyze{"$part_id.foils"} },  
  $name);  
   $Apache::lonhomework::analyze{"$part_id.foil.value.$name"} =  
     $Apache::response::conceptgroup{"$name.value"};  
   $Apache::lonhomework::analyze{"$part_id.foil.text.$name"} =  
     $Apache::response::conceptgroup{"$name.text"};  
   $Apache::lonhomework::analyze{"$part_id.foil.location.$name"} =  
     $Apache::response::conceptgroup{"$name.location"};  
  }  
       } elsif ($target eq 'web') {  
   my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";  
   push(@{ $Apache::hint::option{"$part_id.concepts"} },  
        $concept);  
   $Apache::hint::option{"$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();
   }    }

Removed from v.1.92  
changed lines
  Added in v.1.93


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