version 1.6, 2005/10/18 15:33:55
|
version 1.19.10.1, 2014/02/26 20:52:11
|
Line 26
|
Line 26
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
|
|
|
|
|
|
package Apache::externalresponse; |
package Apache::externalresponse; |
use strict; |
use strict; |
use HTTP::Request::Common; |
use HTTP::Request::Common; |
use Apache::loncapagrade; |
use Apache::loncapagrade; |
use Apache::lonnet; |
use Apache::lonnet; |
|
use Apache::lonlocal; |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::externalresponse',('externalresponse')); |
&Apache::lonxml::register('Apache::externalresponse',('externalresponse')); |
} |
} |
|
|
#FIXME |
=pod |
# send of response params and there current values |
|
# accept a string to be printed out (Where does it get shown?) (.message) |
=head1 FIXME (start_externalresponse) |
# need to get a correct answer from somewhere (probably here since randomized) |
|
|
send of response params and their current values (form good enough? what parameters to send?) |
|
Need to get returned message displayed |
|
|
|
=cut |
|
|
|
|
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); |
|
|
|
if ($target eq 'edit') { |
|
$result .=&Apache::edit::tag_start($target,$token); |
|
$result .=&Apache::edit::text_arg('URL:','url',$token,60).'<br />'; |
|
$result .=&Apache::edit::text_arg(&mt('Answer:'),'answer',$token); |
|
$result .=&Apache::edit::text_arg(&mt('Form:'),'form',$token).'<br />'; |
|
$result .=&Apache::edit::text_arg(&mt('Answer display:'),'answerdisplay',$token,80); |
|
$result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
|
} elsif ($target eq 'modified') { |
|
my $constructtag = |
|
&Apache::edit::get_new_args($token,$parstack,$safeeval, |
|
'answerdisplay','answer','form','url'); |
|
if ($constructtag) { |
|
$result = &Apache::edit::rebuild_tag($token); |
|
} |
|
} elsif ($target eq 'meta') { |
|
$result=&Apache::response::meta_package_write('externalresponse'); |
|
} |
|
|
return $result; |
return $result; |
} |
} |
|
|
Line 74 sub end_externalresponse {
|
Line 102 sub end_externalresponse {
|
$part,$id); |
$part,$id); |
%Apache::loncapagrade::results=(); |
%Apache::loncapagrade::results=(); |
$Apache::lonhomework::results{"resource.$part.$id.submission"}=$response; |
$Apache::lonhomework::results{"resource.$part.$id.submission"}=$response; |
if ($res->{_rc} != '200') { |
if ($res->is_error()) { |
$Apache::loncapagrade::results{'awarddetail'}='ERROR'; |
$Apache::loncapagrade::results{'awarddetail'}='ERROR'; |
} else { |
} else { |
&Apache::lonxml::register('Apache::loncapagrade', |
&Apache::lonxml::register('Apache::loncapagrade', |
('loncapagrade')); |
('loncapagrade')); |
|
@Apache::scripttag::parser_env = @_; |
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:"); |
} |
} |
Line 86 sub end_externalresponse {
|
Line 115 sub end_externalresponse {
|
$Apache::lonhomework::results{"resource.$part.$id.$key"}= |
$Apache::lonhomework::results{"resource.$part.$id.$key"}= |
$Apache::loncapagrade::results{$key}; |
$Apache::loncapagrade::results{$key}; |
} |
} |
|
$Apache::externalresponse::message=$Apache::loncapagrade::results{'message'}; |
&Apache::response::handle_previous(\%previous, |
&Apache::response::handle_previous(\%previous, |
$Apache::loncapagrade::results{'awarddetail'}); |
$Apache::loncapagrade::results{'awarddetail'}); |
|
if ($Apache::loncapagrade::results{'awarddetail'} eq 'ASSIGNED_SCORE') { |
|
$Apache::lonhomework::results{"resource.$part.$id.awarded"}= |
|
1.*$Apache::loncapagrade::results{"awarded"}; |
|
} |
&Apache::lonxml::debug("response of"); |
&Apache::lonxml::debug("response of"); |
&Apache::lonhomework::showhash(%$res); |
&Apache::lonhomework::showhash(%$res); |
&Apache::lonxml::debug("capagrade of"); |
&Apache::lonxml::debug("capagrade of"); |
Line 97 sub end_externalresponse {
|
Line 131 sub end_externalresponse {
|
} |
} |
} |
} |
} |
} |
|
if ($target eq 'web') { |
|
&Apache::response::setup_prior_tries_hash(\&format_prior_response); |
|
if (&Apache::response::show_answer()) { |
|
$result.='<table border="1"><tr><th>'.&mt('Your answer:').'</th></tr><tr><td><pre>'. |
|
&HTML::Entities::encode( |
|
$Apache::lonhomework::history{"resource.$part.$id.submission"},'"<>&'). |
|
'</pre></td></table><br />'.&Apache::lonxml::get_param('answerdisplay',$parstack,$safeeval). |
|
'<br />'; |
|
} |
|
if ($Apache::externalresponse::message) { |
|
$result.='<br /><table><tr><td bgcolor="#FFFFAA">'.$Apache::externalresponse::message.'</td></tr></table><br />'; |
|
} |
|
$Apache::externalresponse::message=''; |
|
} |
|
|
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze') { |
$target eq 'tex' || $target eq 'analyze') { |
&Apache::lonxml::increment_counter($increment); |
&Apache::lonxml::increment_counter($increment, "$part.$id"); |
|
|
|
if ($target eq 'analyze') { |
|
$Apache::lonhomework::analyze{"$part.$id.type"} = 'externalresponse'; |
|
&Apache::lonhomework::set_bubble_lines(); |
|
} |
} |
} |
&Apache::response::end_response(); |
&Apache::response::end_response(); |
return $result; |
return $result; |
} |
} |
|
|
|
sub format_prior_response { |
|
my ($mode,$answer) =@_; |
|
return '<span class="LC_prior_external">'. |
|
&HTML::Entities::encode($answer,'"<>&').'</span>'; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |
|
|
|
|
|
=pod |
|
|
|
=head1 NAME |
|
|
|
Apache::externalresponse.pm |
|
|
|
=head1 SYNOPSIS |
|
|
|
Handler to evaluate externally graded responses. |
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
=head1 SUBROUTINES |
|
|
|
=over |
|
|
|
=item start_externalresponse() |
|
|
|
=item end_externalresponse() |
|
|
|
=item format_prior_response() |
|
|
|
=back |
|
|
|
=cut |