Diff for /loncom/homework/optionresponse.pm between versions 1.172 and 1.174

version 1.172, 2010/09/05 20:46:58 version 1.174, 2011/03/03 21:05:35
Line 103  sub start_foilgroup { Line 103  sub start_foilgroup {
   my $result='';    my $result='';
   %Apache::response::foilgroup=();    %Apache::response::foilgroup=();
   $Apache::optionresponse::conceptgroup=0;    $Apache::optionresponse::conceptgroup=0;
   &Apache::response::pushrandomnumber();    &Apache::response::pushrandomnumber(undef,$target);
   if ($target eq 'edit') {    if ($target eq 'edit') {
     my $optionlist="<option></option>\n";      my $optionlist="<option></option>\n";
     my $option;      my $option;
Line 225  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");
   
         &Apache::lonnet::logthis("Parameter ".$part." ".$lenientparm);
   
         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;
            }
         }
         &Apache::lonnet::logthis("Non-Lenient set to ".$nonlenient);
       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;
Line 262  sub end_foilgroup { Line 282  sub end_foilgroup {
  $Apache::lonhomework::results{"resource.$part.$id.submission"}=   $Apache::lonhomework::results{"resource.$part.$id.submission"}=
     $responsestr;      $responsestr;
  $Apache::lonhomework::results{"resource.$part.$id.submissiongrading"}=$gradestr;   $Apache::lonhomework::results{"resource.$part.$id.submissiongrading"}=$gradestr;
           if ($Apache::lonhomework::type eq 'randomizetry') {
               $Apache::lonhomework::results{"resource.$part.$id.foilorder"} = &Apache::lonnet::array2str(@whichopt);
           }
  if (($Apache::lonhomework::type eq 'survey') ||   if (($Apache::lonhomework::type eq 'survey') ||
             ($Apache::lonhomework::type eq 'surveycred') ||              ($Apache::lonhomework::type eq 'surveycred') ||
             ($Apache::lonhomework::type eq 'anonsurvey') ||              ($Apache::lonhomework::type eq 'anonsurvey') ||
Line 284  sub end_foilgroup { Line 306  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
   #
               &Apache::lonnet::logthis("In non-lenient");
     my $ad;      my $ad;
     if ($wrong==0 && $ignored==0) {      if ($wrong==0 && $ignored==0) {
  $ad='EXACT_ANS';   $ad='EXACT_ANS';
Line 300  sub end_foilgroup { Line 326  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
   #
               &Apache::lonnet::logthis("This is in lenient mode ... nice");
     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 469  sub displayfoils { Line 499  sub displayfoils {
     }      }
   } else {    } else {
     my $temp=1;      my $temp=1;
     my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});      my %lastresponse;
       my $newvariation;
       if ((($Apache::lonhomework::history{"resource.$part.type"} eq 'randomizetry') ||
           ($Apache::lonhomework::type eq 'randomizetry')) &&
           ($Apache::inputtags::status[-1] eq 'CAN_ANSWER')) {
           if ($env{'form.'.$part.'.rndseed'} ne
               $Apache::lonhomework::history{"resource.$part.rndseed"}) {
               $newvariation = 1;
           }
       }
       unless ($newvariation) {
           %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});
       }
     my $internal_counter=$Apache::lonxml::counter;      my $internal_counter=$Apache::lonxml::counter;
     my $checkboxopt=&check_box_opt($target,$checkboxvalue,@opt);      my $checkboxopt=&check_box_opt($target,$checkboxvalue,@opt);
     if ($checkboxopt) {      if ($checkboxopt) {
Line 610  sub displayfoils { Line 652  sub displayfoils {
   }    }
   
   if ($target eq 'web') {    if ($target eq 'web') {
       &Apache::response::setup_prior_tries_hash(\&Apache::rankresponse::format_prior_answer,        my $data = [\@whichopt,'submissiongrading'];
  [\@whichopt,        my $questiontype;
  'submissiongrading']);        if ($Apache::lonhomework::type eq 'randomizetry') {
             $questiontype = $Apache::lonhomework::type,
         }
         &Apache::response::setup_prior_tries_hash(\&Apache::rankresponse::format_prior_answer,$data,$questiontype);
   }    }
   
   if ($target ne 'tex') {    if ($target ne 'tex') {

Removed from v.1.172  
changed lines
  Added in v.1.174


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