version 1.5, 2005/10/18 13:58:12
|
version 1.6, 2005/10/18 15:33:55
|
Line 25
|
Line 25
|
# |
# |
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
# 1/26 Guy |
|
package Apache::externalresponse; |
package Apache::externalresponse; |
use strict; |
use strict; |
use HTTP::Request::Common; |
use HTTP::Request::Common; |
Line 50 sub start_externalresponse {
|
Line 50 sub start_externalresponse {
|
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; |
|
my $part=$Apache::inputtags::part; |
|
my $id = $Apache::inputtags::response['-1']; |
|
my $increment = 1; |
if ($target eq 'grade') { |
if ($target eq 'grade') { |
if ( defined $env{'form.submitted'}) { |
if ( &Apache::response::submitted('scantron') ) { |
my $id = $Apache::inputtags::response['-1']; |
my $increment=&Apache::response::scored_response($part,$id); |
my $response = $env{'form.HWVAL_'.$id}; |
} elsif ( &Apache::response::submitted() ) { |
|
my $response = &Apache::response::getresponse(); |
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); |
Line 66 sub end_externalresponse {
|
Line 70 sub end_externalresponse {
|
&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 $id = $Apache::inputtags::response['-1']; |
|
my %previous = &Apache::response::check_for_previous($response, |
my %previous = &Apache::response::check_for_previous($response, |
$partid,$id); |
$part,$id); |
%Apache::loncapagrade::results=(); |
%Apache::loncapagrade::results=(); |
|
$Apache::lonhomework::results{"resource.$part.$id.submission"}=$response; |
if ($res->{_rc} != '200') { |
if ($res->{_rc} != '200') { |
$Apache::loncapagrade::results{'awardetail'}='ERROR'; |
$Apache::loncapagrade::results{'awarddetail'}='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) { |
foreach my $key (keys(%Apache::loncapagrade::results)) { |
$Apache::lonhomework::results{"resource.$partid.$id.$key"}= |
$Apache::lonhomework::results{"resource.$part.$id.$key"}= |
$Apache::loncapagrade::results{$key}; |
$Apache::loncapagrade::results{$key}; |
} |
} |
&Apache::response::handle_previous(\%previous, |
&Apache::response::handle_previous(\%previous, |
$Apache::loncapagrade::results{'awarddetail'}); |
$Apache::loncapagrade::results{'awarddetail'}); |
&Apache::lonxml::debug("response of"); |
&Apache::lonxml::debug("response of"); |
&Apache::lonhomework::showhash(%$res); |
&Apache::lonhomework::showhash(%$res); |
|
&Apache::lonxml::debug("capagrade of"); |
&Apache::lonhomework::showhash(%Apache::loncapagrade::results); |
&Apache::lonhomework::showhash(%Apache::loncapagrade::results); |
|
&Apache::lonxml::debug("results of"); |
|
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
} |
} |
} |
} |
} |
} |
&Apache::response::end_response; |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
|
$target eq 'tex' || $target eq 'analyze') { |
|
&Apache::lonxml::increment_counter($increment); |
|
} |
|
&Apache::response::end_response(); |
return $result; |
return $result; |
} |
} |
|
|