Diff for /loncom/homework/optionresponse.pm between versions 1.19 and 1.26

version 1.19, 2001/06/27 18:51:59 version 1.26, 2001/12/04 14:57:31
Line 17  sub start_optionresponse { Line 17  sub start_optionresponse {
   push (@Apache::lonxml::namespace,'optionresponse');    push (@Apache::lonxml::namespace,'optionresponse');
   my $id = &Apache::response::start_response($parstack,$safeeval);    my $id = &Apache::response::start_response($parstack,$safeeval);
   if ($target eq 'edit') {    if ($target eq 'edit') {
     $result.=&Apache::edit::start_table($token)."<tr><td>Multiple Option Response Question</td>      $result.=&Apache::edit::start_table($token).
 <td>Delete:".        "<tr><td>Multiple Option Response Question</td><td>Delete:".
   &Apache::edit::deletelist($target,$token)   &Apache::edit::deletelist($target,$token)
     ."</td><td>&nbsp;</td></tr><tr><td colspan=\"3\">\n";    ."</td><td>&nbsp;</td></tr><tr><td colspan=\"3\">\n";
     $result.=&Apache::edit::text_arg('Max Number Of Foils:','max',$token,'4')."</td></tr>";      $result.=&Apache::edit::text_arg('Max Number Of Foils:','max',$token,'4').
         "</td></tr>";
     $result.="<tr><td colspan=\"3\">\n";      $result.="<tr><td colspan=\"3\">\n";
   }    }
   if ($target eq 'modified') {    if ($target eq 'modified') {
     my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'max');      my $constructtag=&Apache::edit::get_new_args($token,$parstack,
    $safeeval,'max');
     if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }      if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
   }    }
     if ($target eq 'meta') {
       $result=&Apache::response::meta_package_write('optionresponse');
     }
   return $result;    return $result;
 }  }
   
Line 109  sub end_foilgroup { Line 114  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') {    if ($target eq 'grade' || $target eq 'web' || $target eq 'answer') {
     my $name;      my $name;
     my ($count,$max) = &getfoilcounts($parstack,$safeeval);      my ($count,$max) = &getfoilcounts($parstack,$safeeval);
     if ($count>$max) { $count=$max }       if ($count>$max) { $count=$max } 
Line 118  sub end_foilgroup { Line 123  sub end_foilgroup {
     eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval);      eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval);
     &Apache::lonxml::debug("Options are $#opt");      &Apache::lonxml::debug("Options are $#opt");
     if ($target eq 'web') {      if ($target eq 'web') {
       $result=&displayfoils($count,@opt);        $result.=&displayfoils($count,@opt);
       } elsif ( $target eq 'answer') {
         $result.=&displayanswers($count,@opt);
     } elsif ( $target eq 'grade') {      } elsif ( $target eq 'grade') {
       if ( defined $ENV{'form.submitted'}) {        if ( defined $ENV{'form.submitted'}) {
  my @whichopt = &whichfoils($count);   my @whichopt = &whichfoils($count);
  my $temp=1;my $name;   my $temp=1;my $name;
  my $allresponse;   my %responsehash;
  my $right=0;   my $right=0;
  my $wrong=0;   my $wrong=0;
  my $ignored=0;   my $ignored=0;
  foreach $name (@whichopt) {   foreach $name (@whichopt) {
   my $response = $ENV{'form.HWVAL_'.$Apache::inputtags::response['-1'].":$temp"};    my $response = $ENV{'form.HWVAL_'.$Apache::inputtags::response['-1'].":$temp"};
   $allresponse.="$response:";    $responsehash{$name}=$response;
   if ( $response =~ /[^\s]/) {    if ( $response =~ /[^\s]/) {
     &Apache::lonxml::debug("submitted a $response<br />\n");      &Apache::lonxml::debug("submitted a $response<br />\n");
     my $value=$Apache::response::foilgroup{$name.'.value'};      my $value=$Apache::response::foilgroup{$name.'.value'};
Line 140  sub end_foilgroup { Line 147  sub end_foilgroup {
   $temp++;    $temp++;
  }   }
  my $id = $Apache::inputtags::response['-1'];   my $id = $Apache::inputtags::response['-1'];
  $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}=$allresponse;   $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}=&Apache::lonnet::hash2str(%responsehash);
  &Apache::lonxml::debug("Got $right right and $wrong wrong, and $ignored were ignored");   &Apache::lonxml::debug("Got $right right and $wrong wrong, and $ignored were ignored");
  if ($wrong==0 && $ignored==0) {   if ($wrong==0 && $ignored==0) {
   $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='EXACT_ANS';    $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='EXACT_ANS';
Line 149  sub end_foilgroup { Line 156  sub end_foilgroup {
  }   }
       }        }
     }      }
   }    } elsif ($target eq 'edit') {
   if ($target eq 'edit') {  
     $result.=&Apache::edit::end_table();      $result.=&Apache::edit::end_table();
   }    }
   return $result;    return $result;
Line 179  sub whichfoils { Line 185  sub whichfoils {
   return @whichopt;    return @whichopt;
 }  }
   
   sub displayanswers {
     my ($max,@opt)=@_;
     my @names = @{ $Apache::response::foilgroup{'names'} };
     my @whichopt = &whichfoils($max);
     my $result=&Apache::response::answer_header('optionresponse');
     foreach my $name (@whichopt) {
       $result.=&Apache::response::answer_part('optionresponse',
        $Apache::response::foilgroup{$name.'.value'})
     }
     $result.=&Apache::response::answer_footer('optionresponse');
     return $result;
   }
   
 sub displayfoils {  sub displayfoils {
   my ($max,@opt)=@_;    my ($max,@opt)=@_;
   my @names = @{ $Apache::response::foilgroup{'names'} };    my @names = @{ $Apache::response::foilgroup{'names'} };
Line 192  sub displayfoils { Line 211  sub displayfoils {
   foreach $option (@opt) {    foreach $option (@opt) {
     $optionlist.="<option>$option</option>\n";      $optionlist.="<option>$option</option>\n";
   }    }
   if ($Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"} =~ /^correct/ ) {    if (($Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"} =~ /^correct/)  || ($Apache::inputtags::status[-1] eq  'SHOW_ANSWER')) {
     foreach $name (@whichopt) {      foreach $name (@whichopt) {
       $result.="<br />".$Apache::response::foilgroup{$name.'.value'}.        $result.="<br />".$Apache::response::foilgroup{$name.'.value'}.
  ":".$Apache::response::foilgroup{$name.'.text'}."\n";   ":".$Apache::response::foilgroup{$name.'.text'}."\n";
Line 231  sub end_conceptgroup { Line 250  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') {    if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') {
     #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'} })) {      if (defined(@{ $Apache::response::conceptgroup{'names'} })) {
       my @names = @{ $Apache::response::conceptgroup{'names'} };        my @names = @{ $Apache::response::conceptgroup{'names'} };
Line 259  sub insert_conceptgroup { Line 278  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') { &Apache::lonxml::startredirection; }    if ($target eq 'web') {
   if ($target eq 'edit') {      &Apache::lonxml::startredirection;
     } elsif ($target eq 'edit') {
     $result=&Apache::edit::tag_start($target,$token,"Foil");      $result=&Apache::edit::tag_start($target,$token,"Foil");
     my $level='-2';      my $level='-2';
     if ($$tagstack['-2'] eq 'conceptgroup') { $level = '-3'; }      if ($$tagstack['-2'] eq 'conceptgroup') { $level = '-3'; }
     my @opt;      my @opt;
     eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval,$level);      eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval,$level);
     $result.=&Apache::edit::text_arg('Name:','name',$token).      $result.=&Apache::edit::text_arg('Name:','name',$token);
       &Apache::edit::select_arg('Correct Option:','value',['unused',(@opt)],$token).      $result.= &Apache::edit::select_or_text_arg('Correct Option:','value',['unused',(@opt)],$token,'15');
       '</td></tr><tr><td colspan="3">';      $result .= '</td></tr><tr><td colspan="3">';
   }    } elsif ($target eq 'modified') {
   if ($target eq 'modified') {  
     my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'value','name');      my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'value','name');
     if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }      if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
   }    }
Line 282  sub end_foil { Line 301  sub end_foil {
   my $text ='';    my $text ='';
   my $result = '';    my $result = '';
   if ($target eq 'web') { $text=&Apache::lonxml::endredirection; }    if ($target eq 'web') { $text=&Apache::lonxml::endredirection; }
   if ($target eq 'web' || $target eq 'grade') {    if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') {
     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.19  
changed lines
  Added in v.1.26


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