version 1.4, 2005/04/07 06:56:21
|
version 1.5, 2005/10/18 13:58:12
|
Line 33 use Apache::loncapagrade;
|
Line 33 use Apache::loncapagrade;
|
use Apache::lonnet; |
use Apache::lonnet; |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::externalresponse',('externalresponse')); |
&Apache::lonxml::register('Apache::externalresponse',('externalresponse')); |
} |
} |
|
|
#FIXME |
#FIXME |
Line 41 BEGIN {
|
Line 41 BEGIN {
|
# accept a string to be printed out (Where does it get shown?) (.message) |
# accept a string to be printed out (Where does it get shown?) (.message) |
# need to get a correct answer from somewhere (probably here since randomized) |
# need to get a correct answer from somewhere (probably here since randomized) |
sub start_externalresponse { |
sub start_externalresponse { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $result; |
my $result; |
my $id = &Apache::response::start_response($parstack,$safeeval); |
my $id = &Apache::response::start_response($parstack,$safeeval); |
return $result; |
return $result; |
} |
} |
|
|
sub end_externalresponse { |
sub end_externalresponse { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $result; |
my $result; |
if ($target eq 'grade') { |
if ($target eq 'grade') { |
if ( defined $env{'form.submitted'}) { |
if ( defined $env{'form.submitted'}) { |
my $id = $Apache::inputtags::response['-1']; |
my $id = $Apache::inputtags::response['-1']; |
my $response = $env{'form.HWVAL_'.$id}; |
my $response = $env{'form.HWVAL_'.$id}; |
if ( $response =~ /[^\s]/) { |
if ( $response =~ /[^\s]/) { |
my $url = &Apache::lonxml::get_param('url',$parstack,$safeeval); |
my $url = &Apache::lonxml::get_param('url',$parstack,$safeeval); |
my $answer = &Apache::lonxml::get_param('answer',$parstack,$safeeval); |
my $answer = &Apache::lonxml::get_param('answer',$parstack,$safeeval); |
my %form = &Apache::lonxml::get_param_var('form',$parstack,$safeeval); |
my %form = &Apache::lonxml::get_param_var('form',$parstack,$safeeval); |
$form{'LONCAPA_student_response'}=$response; |
$form{'LONCAPA_student_response'}=$response; |
$form{'LONCAPA_correct_answer'}=$answer; |
$form{'LONCAPA_correct_answer'}=$answer; |
$form{'LONCAPA_language'}= |
$form{'LONCAPA_language'}= |
&Apache::lonnet::metadata($ENV{'REQUEST_URI'},'language'); |
&Apache::lonnet::metadata($ENV{'REQUEST_URI'},'language'); |
&Apache::lonxml::debug("Asking $url, with:"); |
&Apache::lonxml::debug("Asking $url, with:"); |
&Apache::lonhomework::showhash(%form); |
&Apache::lonhomework::showhash(%form); |
my $ua = LWP::UserAgent->new; |
my $ua = LWP::UserAgent->new; |
my $res = $ua->request(POST $url, \%form); |
my $res = $ua->request(POST $url, \%form); |
my $partid = $Apache::inputtags::part; |
my $partid = $Apache::inputtags::part; |
my $id = $Apache::inputtags::response['-1']; |
my $id = $Apache::inputtags::response['-1']; |
my %previous = &Apache::response::check_for_previous($response, |
my %previous = &Apache::response::check_for_previous($response, |
$partid,$id); |
$partid,$id); |
%Apache::loncapagrade::results=(); |
%Apache::loncapagrade::results=(); |
if ($res->{_rc} != '200') { |
if ($res->{_rc} != '200') { |
$Apache::loncapagrade::results{'awardetail'}='ERROR'; |
$Apache::loncapagrade::results{'awardetail'}='ERROR'; |
} else { |
} else { |
&Apache::lonxml::register('Apache::loncapagrade',('loncapagrade')); |
&Apache::lonxml::register('Apache::loncapagrade',('loncapagrade')); |
my $result=&Apache::scripttag::xmlparse($res->{_content}); |
my $result=&Apache::scripttag::xmlparse($res->{_content}); |
&Apache::lonxml::debug("Got a result of :$result:"); |
&Apache::lonxml::debug("Got a result of :$result:"); |
|
} |
|
foreach my $key (%Apache::loncapagrade::results) { |
|
$Apache::lonhomework::results{"resource.$partid.$id.$key"}= |
|
$Apache::loncapagrade::results{$key}; |
|
} |
|
&Apache::response::handle_previous(\%previous, |
|
$Apache::loncapagrade::results{'awarddetail'}); |
|
&Apache::lonxml::debug("response of"); |
|
&Apache::lonhomework::showhash(%$res); |
|
&Apache::lonhomework::showhash(%Apache::loncapagrade::results); |
|
} |
} |
} |
foreach my $key (%Apache::loncapagrade::results) { |
|
$Apache::lonhomework::results{"resource.$partid.$id.$key"}= |
|
$Apache::loncapagrade::results{$key}; |
|
} |
|
&Apache::response::handle_previous(\%previous, |
|
$Apache::loncapagrade::results{'awarddetail'}); |
|
&Apache::lonxml::debug("response of"); |
|
&Apache::lonhomework::showhash(%$res); |
|
&Apache::lonhomework::showhash(%Apache::loncapagrade::results); |
|
} |
|
} |
} |
} |
&Apache::response::end_response; |
&Apache::response::end_response; |
return $result; |
return $result; |
|
} |
} |
|
|
1; |
1; |