Diff for /loncom/homework/imageresponse.pm between versions 1.99 and 1.100

version 1.99, 2010/02/28 23:37:44 version 1.100, 2010/12/19 01:08:11
Line 192  sub end_imageresponse { Line 192  sub end_imageresponse {
   
 %Apache::response::foilgroup=();  %Apache::response::foilgroup=();
 sub start_foilgroup {  sub start_foilgroup {
       my ($target) = @_;
     %Apache::response::foilgroup=();      %Apache::response::foilgroup=();
     $Apache::imageresponse::conceptgroup=0;      $Apache::imageresponse::conceptgroup=0;
     &Apache::response::pushrandomnumber();      &Apache::response::pushrandomnumber(undef,$target);
     return '';      return '';
 }  }
   
Line 352  sub displayfoils { Line 353  sub displayfoils {
  $temp++;   $temp++;
     }      }
     if ($target eq 'web') {      if ($target eq 'web') {
  &Apache::response::setup_prior_tries_hash(\&format_prior_response,          &get_prior_options(\@images,\@whichopt);
   [\@images,\@whichopt]);  
     }      }
     return $result;      return $result;
 }  }
   
   sub get_prior_options {
       my ($currimages,$curropt) = @_;
       return unless((ref($curropt) eq 'ARRAY') && 
                     (ref($currimages) eq 'ARRAY'));
       my $part = $Apache::inputtags::part;
       my $respid   = $Apache::inputtags::response[-1];
       foreach my $i (1..$Apache::lonhomework::history{'version'}) {
           my $partprefix = "$i:resource.$part";
           my $sub_key = "$partprefix.$respid.submission";
           next if (!exists($Apache::lonhomework::history{$sub_key}));
           my $type_key = "$partprefix.type";
           my @whichopt = ();
           my @images = ();
           if ($Apache::lonhomework::history{$type_key} eq 'randomizetry') {
               my $order_key = "$partprefix.$respid.foilorder";
               @whichopt = &Apache::lonnet::str2array($Apache::lonhomework::history{$order_key});
               if (@whichopt > 0) {
                   foreach my $name (@whichopt) {
                       my $image=$Apache::response::foilgroup{"$name.image"};
                       if ($image !~ /^https?\:/ ) {
                           $image=&clean_up_image($image);
                       }
                       push(@images,$image);
                   }
               }
           } else {
               @whichopt = @{$curropt};
               @images = @{$currimages};
           }
           my $submission = $Apache::lonhomework::history{$sub_key};
           my $output =  &format_prior_response('grade',$submission,
                                                [\@images,\@whichopt]);
           if (defined($output)) {
               $Apache::inputtags::submission_display{$sub_key} = $output;
           }
       }
   }
   
 sub format_prior_response {  sub format_prior_response {
     my ($mode,$answer,$other_data) = @_;      my ($mode,$answer,$other_data) = @_;
           
Line 459  sub gradefoils { Line 497  sub gradefoils {
  }   }
  $temp++;   $temp++;
     }      }
       if ($Apache::lonhomework::type eq 'randomizetry') {
           $Apache::lonhomework::results{"resource.$partid.$id.foilorder"} = &Apache::lonnet::array2str(@whichopt);
       }
     my ($result) = &Apache::inputtags::finalizeawards(\@results,[]);      my ($result) = &Apache::inputtags::finalizeawards(\@results,[]);
     &Apache::lonxml::debug("Question is $result");      &Apache::lonxml::debug("Question is $result");
   
Line 488  sub gradefoils { Line 529  sub gradefoils {
 sub stringify_submission {  sub stringify_submission {
     my ($response) = @_;      my ($response) = @_;
     return &Apache::lonnet::hash2str(%{ $response });      return &Apache::lonnet::hash2str(%{ $response });
   
       
 }  }
   
 sub get_submission {  sub get_submission {
Line 526  sub end_foilgroup { Line 565  sub end_foilgroup {
   
  if ($target eq 'web' || $target eq 'tex') {   if ($target eq 'web' || $target eq 'tex') {
     $result=&displayfoils($target,@whichopt);      $result=&displayfoils($target,@whichopt);
               if ($Apache::lonhomework::type eq 'randomizetry') {
                   if ($target eq 'web') {
                       &get_prior_options($target,@whichopt);
                   }
               }
     $Apache::lonxml::post_evaluate=0;      $Apache::lonxml::post_evaluate=0;
  } elsif ($target eq 'grade') {   } elsif ($target eq 'grade') {
     if ( defined $env{'form.submitted'}) { &gradefoils(@whichopt); }      if ( defined $env{'form.submitted'}) { &gradefoils(@whichopt); }

Removed from v.1.99  
changed lines
  Added in v.1.100


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