version 1.191, 2008/05/30 16:19:49
|
version 1.208, 2008/11/25 13:16:17
|
Line 26
|
Line 26
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
|
|
|
=pod |
|
|
|
=head1 NAME |
|
|
|
Apache::resonse.pm |
|
|
|
=head1 SYNOPSIS |
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
|
|
=head1 NOTABLE SUBROUTINES |
|
|
|
=over |
|
|
|
=item |
|
|
|
=back |
|
|
|
=cut |
|
|
|
|
package Apache::response; |
package Apache::response; |
use strict; |
use strict; |
use Apache::lonlocal; |
use Apache::lonlocal; |
Line 217 sub meta_stores_write {
|
Line 240 sub meta_stores_write {
|
} |
} |
|
|
sub mandatory_part_meta { |
sub mandatory_part_meta { |
# |
=pod |
# Autogenerate metadata for mandatory |
|
# input (from RAT or lonparmset) and |
=item meta_part_order |
# output (to lonspreadsheet) |
|
# of each part |
Autogenerate metadata for mandatory |
|
input (from RAT or lonparmset) and |
|
output (to lonspreadsheet) |
|
of each part |
# |
# |
return |
return |
# &meta_parameter_write('opendate','date_start','', |
&meta_parameter_write('opendate','date_start','', |
# 'Opening Date'). |
'Opening Date'). |
# &meta_parameter_write('duedate','date_end','', |
&meta_parameter_write('duedate','date_end','', |
# 'Due Date'). |
'Due Date'). |
# &meta_parameter_write('answerdate','date_start','', |
&meta_parameter_write('answerdate','date_start','', |
# 'Show Answer Date'). |
'Show Answer Date'). |
# &meta_parameter_write('weight','int_zeropos','', |
&meta_parameter_write('weight','int_zeropos','', |
# 'Available Points'). |
'Available Points'). |
# &meta_parameter_write('maxtries','int_pos','', |
&meta_parameter_write('maxtries','int_pos','', |
# 'Maximum Number of Tries'). |
'Maximum Number of Tries'). |
&meta_package_write('part'). |
&meta_package_write('part'). |
&meta_stores_write('solved','string', |
&meta_stores_write('solved','string', |
'Problem Status'). |
'Problem Status'). |
Line 241 sub mandatory_part_meta {
|
Line 267 sub mandatory_part_meta {
|
'Number of Attempts'). |
'Number of Attempts'). |
&meta_stores_write('awarded','float', |
&meta_stores_write('awarded','float', |
'Partial Credit Factor'); |
'Partial Credit Factor'); |
# |
|
# Note: responseid-specific data 'submission' and 'awarddetail' |
Note: responseid-specific data 'submission' and 'awarddetail' |
# not available to spreadsheet -> skip here |
not available to spreadsheet -> skip here |
# |
|
|
=cut |
|
|
} |
} |
|
|
sub meta_part_order { |
sub meta_part_order { |
Line 486 sub start_mathresponse {
|
Line 514 sub start_mathresponse {
|
$safeeval); |
$safeeval); |
$Apache::inputtags::answertxt{$id}=[$answer]; |
$Apache::inputtags::answertxt{$id}=[$answer]; |
} |
} |
if ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') { |
|
$result.=&edit_mathresponse_button($id,"HWVAL_$id"); |
|
} |
|
|
|
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result.=&Apache::edit::tag_start($target,$token); |
$result.=&Apache::edit::tag_start($target,$token); |
Line 499 sub start_mathresponse {
|
Line 524 sub start_mathresponse {
|
['maxima'], |
['maxima'], |
$token); |
$token); |
$result.=&Apache::edit::text_arg('Argument Array:', |
$result.=&Apache::edit::text_arg('Argument Array:', |
'args',$token); |
'args',$token). |
|
&Apache::loncommon::help_open_topic('Maxima_Argument_Array'); |
|
$result.=&Apache::edit::text_arg('Libraries:', |
|
'libraries',$token). |
|
&Apache::loncommon::help_open_topic('Maxima_Libraries'); |
$result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
$result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag; |
my $constructtag; |
$constructtag=&Apache::edit::get_new_args($token,$parstack, |
$constructtag=&Apache::edit::get_new_args($token,$parstack, |
$safeeval,'answerdisplay','cas','args'); |
$safeeval,'answerdisplay','cas','args','libraries'); |
if ($constructtag) { |
if ($constructtag) { |
$result = &Apache::edit::rebuild_tag($token); |
$result = &Apache::edit::rebuild_tag($token); |
} |
} |
Line 519 sub start_mathresponse {
|
Line 548 sub start_mathresponse {
|
sub edit_mathresponse_button { |
sub edit_mathresponse_button { |
my ($id,$field)=@_; |
my ($id,$field)=@_; |
my $button=&mt('Edit Answer'); |
my $button=&mt('Edit Answer'); |
|
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
|
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
return(<<ENDFORMULABUTTON); |
return(<<ENDFORMULABUTTON); |
<script language="JavaScript"> |
<script language="JavaScript"> |
function edit_${id}_${field} (textarea) { |
function edit_${id}_${field} (textarea) { |
Line 527 function edit_${id}_${field} (textarea)
|
Line 558 function edit_${id}_${field} (textarea)
|
newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable"); |
newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable"); |
} |
} |
</script> |
</script> |
<input type='button' value='$button' onclick="javascript:edit_${id}_${field}('${field}');void(0);" /> |
<a href="javascript:edit_${id}_${field}('${field}');void(0);"><img class="stift" src='$iconpath/stift.gif' alt='$button' title='$button'/></a> |
ENDFORMULABUTTON |
ENDFORMULABUTTON |
} |
} |
|
|
Line 551 sub end_mathresponse {
|
Line 582 sub end_mathresponse {
|
my $cas = &Apache::lonxml::get_param('cas',$parstack,$safeeval); |
my $cas = &Apache::lonxml::get_param('cas',$parstack,$safeeval); |
if ($cas eq 'maxima') { |
if ($cas eq 'maxima') { |
my $args = [&Apache::lonxml::get_param_var('args',$parstack,$safeeval)]; |
my $args = [&Apache::lonxml::get_param_var('args',$parstack,$safeeval)]; |
$award=&Apache::lonmaxima::maxima_run($Apache::response::custom_answer[-1],$response,$args); |
$award=&Apache::lonmaxima::maxima_run($Apache::response::custom_answer[-1],$response,$args, |
|
&Apache::lonxml::get_param('libraries',$parstack,$safeeval)); |
} |
} |
if (!&Apache::inputtags::valid_award($award)) { |
if (!&Apache::inputtags::valid_award($award)) { |
$error = $award; |
$error = $award; |
Line 568 sub end_mathresponse {
|
Line 600 sub end_mathresponse {
|
} |
} |
if ($target eq 'web') { |
if ($target eq 'web') { |
&setup_prior_tries_hash(\&format_prior_response_math); |
&setup_prior_tries_hash(\&format_prior_response_math); |
|
my $partid = $Apache::inputtags::part; |
|
my $id = $Apache::inputtags::response[-1]; |
|
if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') |
|
&& (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) { |
|
$result.=&edit_mathresponse_button($id,"HWVAL_$id"); |
|
} |
} |
} |
|
|
pop(@Apache::lonxml::namespace); |
pop(@Apache::lonxml::namespace); |
Line 670 sub start_responseparam {
|
Line 708 sub start_responseparam {
|
} |
} |
} |
} |
if (defined($optionlist)) { |
if (defined($optionlist)) { |
$result.='Use template: <select name="'. |
$result.=&mt('Use template:').' <select name="'. |
&Apache::edit::html_element_name('parameter_package').'">'. |
&Apache::edit::html_element_name('parameter_package').'">'. |
'<option value=""></option>'.$optionlist.'</select><br />'; |
'<option value=""></option>'.$optionlist.'</select><br />'; |
} |
} |
Line 1138 sub pick_foil_for_concept {
|
Line 1176 sub pick_foil_for_concept {
|
$Apache::response::conceptgroup{'names'}; |
$Apache::response::conceptgroup{'names'}; |
|
|
} |
} |
#------------------------------------------------------------ |
|
# |
=pod |
# Get a parameter associated with a problem. |
|
# Parameters: |
=item get_response_param() |
# $id - the id of the paramater, either a part id, |
|
# or a partid and responspe id joined by _ |
Get a parameter associated with a problem. |
# $name - Name of the parameter to fetch |
Parameters: |
# $default - Default value for the paramter. |
$id - the id of the paramater, either a part id, |
# |
or a partid and responspe id joined by _ |
# |
$name - Name of the parameter to fetch |
# |
$default - Default value for the paramter. |
|
|
|
=cut |
|
|
sub get_response_param { |
sub get_response_param { |
my ($id,$name,$default)=@_; |
my ($id,$name,$default)=@_; |
my $parameter; |
my $parameter; |
Line 1182 sub submitted {
|
Line 1223 sub submitted {
|
} |
} |
# Submit All button on a .page was pressed |
# Submit All button on a .page was pressed |
if (defined($env{'form.all_submit'})) { return 1; } |
if (defined($env{'form.all_submit'})) { return 1; } |
# otherwise no submission occured |
# otherwise no submission occurred |
return 0; |
return 0; |
} |
} |
|
|
Line 1209 sub add_to_gradingqueue {
|
Line 1250 sub add_to_gradingqueue {
|
} |
} |
} |
} |
|
|
# basically undef and 0 (both false) mean that they still have work to do |
=pod |
# and all true values mean that they can't do any more work |
|
# |
=item check_status() |
# a return of undef means it is unattempted |
|
# a return of 0 means it is attmpted and wrong but still has tries |
basically undef and 0 (both false) mean that they still have work to do |
# a return of 1 means it is marked correct |
and all true values mean that they can't do any more work |
# a return of 2 means they have exceed maximum number of tries |
|
# a return of 3 means it after the answer date |
a return of undef means it is unattempted |
|
a return of 0 means it is attmpted and wrong but still has tries |
|
a return of 1 means it is marked correct |
|
a return of 2 means they have exceed maximum number of tries |
|
a return of 3 means it after the answer date |
|
|
|
=cut |
|
|
sub check_status { |
sub check_status { |
my ($id)=@_; |
my ($id)=@_; |
if (!defined($id)) { $id=$Apache::inputtags::part; } |
if (!defined($id)) { $id=$Apache::inputtags::part; } |
Line 1284 sub setup_prior_tries_hash {
|
Line 1332 sub setup_prior_tries_hash {
|
1; |
1; |
__END__ |
__END__ |
|
|
|
=pod |
|
|
|
=back |
|
|
|
=cut |
|
|