--- loncom/homework/lonhomework.pm 2011/02/06 18:43:10 1.323 +++ loncom/homework/lonhomework.pm 2011/07/04 13:01:57 1.327 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.323 2011/02/06 18:43:10 www Exp $ +# $Id: lonhomework.pm,v 1.327 2011/07/04 13:01:57 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -147,6 +147,8 @@ sub get_target { } else { if ($env{'form.problemstate'} eq 'WEB_GRADE') { return ('grade','webgrade','answer'); + } elsif ($env{'form.problemmode'} eq 'view') { + return ('grade','web','answer'); } elsif ($env{'form.problemmode'} eq 'saveview') { return ('modified','web','answer'); } elsif ($env{'form.problemmode'} eq 'discard') { @@ -374,7 +376,12 @@ sub check_access { $date=&mt("can not be accessed from your location."); return($status,$date); } - + if ($env{'form.grade_imsexport'}) { + if (($env{'request.course.id'}) && + (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) { + return ('SHOW_ANSWER'); + } + } foreach my $temp ("opendate","duedate","answerdate") { $lastdate = $date; if ($temp eq 'duedate') { @@ -432,11 +439,14 @@ sub check_access { if ( $tries eq '' ) { $tries = '0'; } if ( $maxtries eq '' && $env{'request.state'} ne 'construct') { $maxtries = '2'; } + $Apache::lonhomework::results{'resource.'.$id.'.maxtries'}=$maxtries; if ($maxtries && $tries >= $maxtries) { $status = 'CANNOT_ANSWER'; } # if (correct and show prob status) or excused then CANNOT_ANSWER if(($Apache::lonhomework::history{"resource.$id.solved"}=~/^correct/ && - &show_problem_status()) + &show_problem_status() + && + $Apache::lonhomework::history{"resource.$id.awarded"}==1) || $Apache::lonhomework::history{"resource.$id.solved"}=~/^excused/) { $status = 'CANNOT_ANSWER';