--- loncom/homework/imageresponse.pm 2012/10/12 12:45:46 1.104 +++ loncom/homework/imageresponse.pm 2013/04/30 03:03:34 1.105 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.104 2012/10/12 12:45:46 raeburn Exp $ +# $Id: imageresponse.pm,v 1.105 2013/04/30 03:03:34 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -391,7 +391,17 @@ sub get_prior_options { @whichopt = @{$curropt}; @images = @{$currimages}; } - my $submission = $Apache::lonhomework::history{$sub_key}; + my $submission; + if ((($env{'form.grade_username'} eq '') && ($env{'form.grade_domain'} eq '')) || + (($env{'form.grade_username'} eq $env{'user.name'}) && + ($env{'form.grade_domain'} eq $env{'user.domain'}))) { + $submission = $Apache::lonhomework::history{$sub_key}; + } else { + unless (($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurvey') || + ($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurveycred')) { + $submission = $Apache::lonhomework::history{$sub_key}; + } + } my $output = &format_prior_response('grade',$submission, [\@images,\@whichopt]); if (defined($output)) { @@ -543,8 +553,29 @@ sub get_submission { if (!defined($string)) { my $part=$Apache::inputtags::part; my $respid=$Apache::inputtags::response['-1']; - $string = - $Apache::lonhomework::history{"resource.$part.$respid.submission"}; + 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) { + if ((($env{'form.grade_username'} eq '') && ($env{'form.grade_domain'} eq '')) || + (($env{'form.grade_username'} eq $env{'user.name'}) && + ($env{'form.grade_domain'} eq $env{'user.domain'}))) { + $string = + $Apache::lonhomework::history{"resource.$part.$respid.submission"}; + } else { + unless (($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurvey') || + ($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurveycred')) { + $string = + $Apache::lonhomework::history{"resource.$part.$respid.submission"}; + } + } + } } if ($string !~ /=/) { @@ -558,7 +589,7 @@ sub get_submission { sub end_foilgroup { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result=''; - my @whichopt; + my (@images,@whichopt); if ($target eq 'web' || $target eq 'grade' || $target eq 'tex' || $target eq 'analyze' || $target eq 'answer') { @@ -573,7 +604,7 @@ sub end_foilgroup { $result=&displayfoils($target,@whichopt); if ($Apache::lonhomework::type eq 'randomizetry') { if ($target eq 'web') { - &get_prior_options($target,@whichopt); + &get_prior_options(\@images,\@whichopt); } } $Apache::lonxml::post_evaluate=0;