version 1.209, 2008/12/07 23:40:57
|
version 1.215, 2009/05/04 16:45:44
|
Line 54 use strict;
|
Line 54 use strict;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::lonmaxima(); |
use Apache::lonmaxima(); |
|
use Apache::lonr(); |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); |
&Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); |
Line 239 sub meta_stores_write {
|
Line 240 sub meta_stores_write {
|
"></stores>\n"; |
"></stores>\n"; |
} |
} |
|
|
sub mandatory_part_meta { |
|
=pod |
=pod |
|
|
=item meta_part_order |
=item mandatory_part_meta() |
|
|
Autogenerate metadata for mandatory |
Autogenerate metadata for mandatory |
input (from RAT or lonparmset) and |
input (from RAT or lonparmset) and |
output (to lonspreadsheet) |
output (to lonspreadsheet) |
of each part |
of each part |
# |
|
return |
|
&meta_parameter_write('opendate','date_start','', |
|
'Opening Date'). |
|
&meta_parameter_write('duedate','date_end','', |
|
'Due Date'). |
|
&meta_parameter_write('answerdate','date_start','', |
|
'Show Answer Date'). |
|
&meta_parameter_write('weight','int_zeropos','', |
|
'Available Points'). |
|
&meta_parameter_write('maxtries','int_pos','', |
|
'Maximum Number of Tries'). |
|
&meta_package_write('part'). |
|
&meta_stores_write('solved','string', |
|
'Problem Status'). |
|
&meta_stores_write('tries','int_zeropos', |
|
'Number of Attempts'). |
|
&meta_stores_write('awarded','float', |
|
'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 |
=cut |
|
|
|
|
|
sub mandatory_part_meta { |
|
return &meta_package_write('part'). |
|
&meta_stores_write('solved','string','Problem Status'). |
|
&meta_stores_write('tries','int_zeropos','Number of Attempts'). |
|
&meta_stores_write('awarded','float','Partial Credit Factor'); |
} |
} |
|
|
sub meta_part_order { |
sub meta_part_order { |
Line 297 sub check_for_previous {
|
Line 284 sub check_for_previous {
|
my %previous; |
my %previous; |
$previous{'used'} = 0; |
$previous{'used'} = 0; |
foreach my $key (sort(keys(%Apache::lonhomework::history))) { |
foreach my $key (sort(keys(%Apache::lonhomework::history))) { |
if ($key =~ /resource\.$partid\.$id\.submission$/) { |
if ($key =~ /resource\.\Q$partid\E\.\Q$id\E\.submission$/) { |
if ( $last && $key =~ /^(\d+):/ ) { |
if ( $last && $key =~ /^(\d+):/ ) { |
next if ($1 >= $last); |
next if ($1 >= $last); |
} |
} |
Line 522 sub start_mathresponse {
|
Line 509 sub start_mathresponse {
|
'answerdisplay',$token); |
'answerdisplay',$token); |
$result.=&Apache::edit::select_arg('Algebra System:', |
$result.=&Apache::edit::select_arg('Algebra System:', |
'cas', |
'cas', |
['maxima'], |
['maxima','R'], |
$token); |
$token); |
$result.=&Apache::edit::text_arg('Argument Array:', |
$result.=&Apache::edit::text_arg('Argument Array:', |
'args',$token). |
'args',$token). |
Line 552 sub edit_mathresponse_button {
|
Line 539 sub edit_mathresponse_button {
|
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
return(<<ENDFORMULABUTTON); |
return(<<ENDFORMULABUTTON); |
<script language="JavaScript"> |
<script type="text/javascript" language="JavaScript"> |
function edit_${id}_${field} (textarea) { |
function edit_${id}_${field} (textarea) { |
thenumber = textarea; |
thenumber = textarea; |
thedata = document.forms['lonhomework'].elements[textarea].value; |
thedata = document.forms['lonhomework'].elements[textarea].value; |
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> |
<a href="javascript:edit_${id}_${field}('${field}');void(0);"><img class="stift" src='$iconpath/stift.gif' alt='$button' title='$button'/></a> |
<a href="javascript:edit_${id}_${field}('${field}');void(0);"><img class="stift" src="$iconpath/stift.gif" alt="$button" title="$button" /></a> |
ENDFORMULABUTTON |
ENDFORMULABUTTON |
} |
} |
|
|
Line 586 sub end_mathresponse {
|
Line 573 sub end_mathresponse {
|
$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)); |
&Apache::lonxml::get_param('libraries',$parstack,$safeeval)); |
} |
} |
|
if ($cas eq 'R') { |
|
my $args = [&Apache::lonxml::get_param_var('args',$parstack,$safeeval)]; |
|
$award=&Apache::lonr::r_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; |
$award = 'ERROR'; |
$award = 'ERROR'; |
Line 916 sub showallfoils {
|
Line 909 sub showallfoils {
|
|
|
=pod |
=pod |
|
|
=item &getresponse($offset,$resulttype); |
=item &getresponse(); |
|
|
Retreives the current submitted response, helps out in the case of |
Retreives the current submitted response, helps out in the case of |
scantron mode. |
scantron mode. |
Line 962 sub getresponse {
|
Line 955 sub getresponse {
|
my $id = $Apache::inputtags::response[-1]; |
my $id = $Apache::inputtags::response[-1]; |
|
|
my $line; |
my $line; |
|
my $startline = $env{'form.scantron_questnum_start.'.$part.'.'.$id}; |
|
if (!$startline) { |
|
$startline = $Apache::lonxml::counter; |
|
} |
for ($line = 0; $line < $lines; $line++) { |
for ($line = 0; $line < $lines; $line++) { |
my $theline = $Apache::lonxml::counter+$offset-1+$line; |
my $theline = $startline+$offset-1+$line; |
$response = $env{"scantron.$theline.answer"}; |
$response = $env{"scantron.$theline.answer"}; |
if ((defined($response)) && ($response ne "") && ($response ne " ")) { |
if ((defined($response)) && ($response ne "") && ($response ne " ")) { |
last; |
last; |
} |
} |
|
|
} |
} |
|
|
# save bubbled letter for later |
# save bubbled letter for later |
Line 1020 sub repetition {
|
Line 1017 sub repetition {
|
|
|
=pod |
=pod |
|
|
=item &scored_response($part_id,$response_id); |
=item &scored_response(); |
|
|
Sets the results hash elements |
Sets the results hash elements |
|
|
Line 1290 sub check_status {
|
Line 1287 sub check_status {
|
|
|
=pod |
=pod |
|
|
=item setup_prior_tries_hash($func,$data) |
=item setup_prior_tries_hash() |
|
|
Foreach each past .submission $func is called with 3 arguments |
Foreach each past .submission $func is called with 3 arguments |
- the mode to set things up for (currently always 'grade') |
- the mode to set things up for (currently always 'grade') |
Line 1335 __END__
|
Line 1332 __END__
|
|
|
=pod |
=pod |
|
|
=back |
|
|
|
=cut |
=cut |