Diff for /loncom/homework/optionresponse.pm between versions 1.173.2.2 and 1.176

version 1.173.2.2, 2011/11/08 19:38:05 version 1.176, 2011/06/07 17:27:37
Line 155  ENDTABLE Line 155  ENDTABLE
       splice(@options,$delopt-1,1);        splice(@options,$delopt-1,1);
       $optchanged=1;        $optchanged=1;
     }      }
     if ($env{"form.$Apache::lonxml::curdepth.options"} ne '') {      if ($env{"form.$Apache::lonxml::curdepth.options"}) {
       my $newopt = $env{"form.$Apache::lonxml::curdepth.options"};        my $newopt = $env{"form.$Apache::lonxml::curdepth.options"};
       push(@options,$newopt);        if ($options[0]) {
    push(@options,$newopt);
         } else {
    $options[0]=$newopt;
         }
       $optchanged=1;        $optchanged=1;
     }      }
     my $rebuildtag = &Apache::edit::get_new_args($token,$parstack,$safeeval,      my $rebuildtag = &Apache::edit::get_new_args($token,$parstack,$safeeval,
Line 209  sub end_foilgroup { Line 213  sub end_foilgroup {
     my $randomize = &Apache::lonxml::get_param('randomize',$parstack,      my $randomize = &Apache::lonxml::get_param('randomize',$parstack,
        $safeeval,'-2');         $safeeval,'-2');
     if ($target eq 'web' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'tex') {
       $result.=&displayfoils($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,$tex_option_switch,@opt);        $result.=&displayfoils($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,@opt);
       $Apache::lonxml::post_evaluate=0;        $Apache::lonxml::post_evaluate=0;
     } elsif ( $target eq 'answer') {      } elsif ( $target eq 'answer') {
       $result.=&displayanswers($max,$randomize,@opt);        $result.=&displayanswers($max,$randomize,@opt);
Line 221  sub end_foilgroup { Line 225  sub end_foilgroup {
  my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";   my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";
  push (@{ $Apache::lonhomework::analyze{"$part_id.options"} },@opt);   push (@{ $Apache::lonhomework::analyze{"$part_id.options"} },@opt);
     } elsif ( $target eq 'grade') {      } elsif ( $target eq 'grade') {
   
         my $nonlenient=0;
         my $part=$Apache::inputtags::part;
         my $lenientparm=&Apache::lonnet::EXT("resource.$part.lenient");
   
         if ($Apache::lonhomework::scantronmode) {
            $nonlenient=0;
   # Grading an exam: we are grading lenient unless told not to
            if ($lenientparm=~/^0|off|no$/i) {
               $nonlenient=1;
            }
         } else {
   # Web mode: we are non-lenient unless told to
            $nonlenient=1;
            if ($lenientparm=~/^1|on|yes$/i) {
               $nonlenient=0;
            }
         }
       if ( &Apache::response::submitted()) {        if ( &Apache::response::submitted()) {
   
  my @whichopt = &whichfoils($max,$randomize);   my @whichopt = &whichfoils($max,$randomize);
  my $temp=1;my $name;   my $temp=1;my $name;
  my %responsehash;   my %responsehash;
Line 282  sub end_foilgroup { Line 305  sub end_foilgroup {
  my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='MISSING_ANSWER';   my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='MISSING_ANSWER';
  &Apache::response::handle_previous(\%previous,$ad);   &Apache::response::handle_previous(\%previous,$ad);
     }      }
  } elsif (!$Apache::lonhomework::scantronmode) {   } elsif ($nonlenient) {
   #
   # Non-lenient mode. All right or all wrong
   #
     my $ad;      my $ad;
     if ($wrong==0 && $ignored==0) {      if ($wrong==0 && $ignored==0) {
  $ad='EXACT_ANS';   $ad='EXACT_ANS';
Line 298  sub end_foilgroup { Line 324  sub end_foilgroup {
     $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$ad;      $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$ad;
     &Apache::response::handle_previous(\%previous,$ad);      &Apache::response::handle_previous(\%previous,$ad);
  } else {   } else {
   #
   # This is lenient mode
   #
     my $ad;      my $ad;
     if ($wrong==0 && $right==0) {      if ($wrong==0 && $right==0) {
  #nothing submitted only assign a score if we    #nothing submitted only assign a score if we 
Line 417  sub check_for_invalid { Line 446  sub check_for_invalid {
 }  }
   
 sub displayfoils {  sub displayfoils {
   my ($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,    my ($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,@opt)=@_;
       $tex_option_switch,@opt)=@_;  
   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 @truelist;    my @truelist;
Line 428  sub displayfoils { Line 456  sub displayfoils {
   my $displayoptionintex=1;    my $displayoptionintex=1;
   my @alphabet = ('A'..'Z');    my @alphabet = ('A'..'Z');
   my @whichopt = &whichfoils($max,$randomize);    my @whichopt = &whichfoils($max,$randomize);
   unless (($target eq 'tex') && ($tex_option_switch eq 'nochoice')) {    &check_for_invalid(\@whichopt,\@opt);
       &check_for_invalid(\@whichopt,\@opt);  
   }  
   my $part=$Apache::inputtags::part;    my $part=$Apache::inputtags::part;
   my $id=$Apache::inputtags::response[-1];    my $id=$Apache::inputtags::response[-1];
   my $break;    my $break;
   my $solved=$Apache::lonhomework::history{"resource.$part.solved"};  
   if ( ($target ne 'tex') &&    if ( ($target ne 'tex') &&
        &Apache::response::show_answer() ) {         &Apache::response::show_answer() ) {
     my $temp=1;      my $temp=1;
Line 825  sub end_foil { Line 850  sub end_foil {
   &Apache::lonxml::warning(&mt('Foils without names exist. This can cause problems to malfunction.'));    &Apache::lonxml::warning(&mt('Foils without names exist. This can cause problems to malfunction.'));
   $name=$Apache::lonxml::curdepth;    $name=$Apache::lonxml::curdepth;
       }        }
         if ($name eq "0") {
             &Apache::lonxml::error(&mt('Foil name [_1] is not supported. Please choose another name.','<b><tt>'.$name.'</tt></b>'));
         }
       &Apache::lonxml::debug("Using a name of :$name:");        &Apache::lonxml::debug("Using a name of :$name:");
       if (defined($Apache::response::foilnames{$name})) {        if (defined($Apache::response::foilnames{$name})) {
   &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",'<b><tt>'.$name.'</tt></b>'));    &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",'<b><tt>'.$name.'</tt></b>'));

Removed from v.1.173.2.2  
changed lines
  Added in v.1.176


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