version 1.237, 2014/09/24 18:14:27
|
version 1.244.2.1, 2018/09/02 16:51:51
|
Line 56 use Apache::lonnet;
|
Line 56 use Apache::lonnet;
|
use Apache::inputtags(); |
use Apache::inputtags(); |
use Apache::lonmaxima(); |
use Apache::lonmaxima(); |
use Apache::lonr(); |
use Apache::lonr(); |
|
use Apache::lontexconvert(); |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); |
&Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse','customresponse','mathresponse')); |
Line 180 sub setrandomnumber {
|
Line 181 sub setrandomnumber {
|
} else { |
} else { |
($rndmod,$rndmod2)=&Apache::lonnet::digest("$id1,$id2"); |
($rndmod,$rndmod2)=&Apache::lonnet::digest("$id1,$id2"); |
} |
} |
$Apache::lonhomework::results{'resource.'.$id1.'.rawrndseed'}=$rndseed; |
|
if ($rndseed =~/([,:])/) { |
if ($rndseed =~/([,:])/) { |
my $char=$1; |
my $char=$1; |
use integer; |
use integer; |
Line 197 sub setrandomnumber {
|
Line 197 sub setrandomnumber {
|
} |
} |
} |
} |
&Apache::lonxml::debug("randseed $rndmod $rndseed"); |
&Apache::lonxml::debug("randseed $rndmod $rndseed"); |
$Apache::lonhomework::results{'resource.'.$id1.'.rndseed'}=$rndseed; |
|
&Apache::lonnet::setup_random_from_rndseed($rndseed); |
&Apache::lonnet::setup_random_from_rndseed($rndseed); |
return ''; |
return ''; |
} |
} |
Line 514 sub end_customresponse {
|
Line 513 sub end_customresponse {
|
&Apache::lonhomework::set_bubble_lines(); |
&Apache::lonhomework::set_bubble_lines(); |
} |
} |
} |
} |
|
if ($target eq 'web') { |
|
&setup_prior_tries_hash(\&format_prior_response_math); |
|
} |
pop(@Apache::lonxml::namespace); |
pop(@Apache::lonxml::namespace); |
pop(@Apache::response::custom_answer); |
pop(@Apache::response::custom_answer); |
pop(@Apache::response::custom_answer_type); |
pop(@Apache::response::custom_answer_type); |
Line 576 sub start_mathresponse {
|
Line 578 sub start_mathresponse {
|
return $result; |
return $result; |
} |
} |
|
|
sub edit_mathresponse_button { |
|
my ($id,$field)=@_; |
|
my $btype = $env{'browser.type'}; |
|
my $bversion = $env{'browser.version'}; |
|
if (($btype eq 'explorer' && $bversion < 9) || ($btype eq 'safari' && $bversion < 3) || |
|
($btype eq 'mozilla' && $bversion < 3)) { |
|
# DragMath applet |
|
my $button=&mt('Edit Answer'); |
|
# my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor'); |
|
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
|
return(<<ENDFORMULABUTTON); |
|
<script type="text/javascript" language="JavaScript"> |
|
function edit_${id}_${field} (textarea) { |
|
thenumber = textarea; |
|
thedata = document.forms['lonhomework'].elements[textarea].value; |
|
newwin = window.open("/adm/dragmath/MaximaPopup.html","","width=565,height=400,resizable"); |
|
} |
|
</script> |
|
<a href="javascript:edit_${id}_${field}('${field}');void(0);"><img class="stift" src="$iconpath/stift.gif" alt="$button" title="$button" /></a> |
|
ENDFORMULABUTTON |
|
|
|
} else { |
|
# LON-CAPA math equation editor |
|
return(<<EQ_EDITOR_SCRIPT); |
|
<script type="text/javascript"> |
|
var field = document.getElementById('${field}'); |
|
field.className += ' math'; // note the space |
|
var LCMATH_started; |
|
if (typeof LCMATH_started === 'undefined') { |
|
LCMATH_started = true; |
|
var script = document.createElement("script"); |
|
script.type = "text/javascript"; |
|
script.src = "/adm/LC_math_editor/LC_math_editor.min.js"; |
|
document.body.appendChild(script); |
|
window.addEventListener('load', function(e) { |
|
LCMATH.initEditors(); |
|
}, false); |
|
} |
|
</script> |
|
EQ_EDITOR_SCRIPT |
|
} |
|
} |
|
|
|
sub end_mathresponse { |
sub end_mathresponse { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
Line 673 sub end_mathresponse {
|
Line 632 sub end_mathresponse {
|
} |
} |
} |
} |
} |
} |
if ($target eq 'web') { |
|
&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); |
pop(@Apache::response::custom_answer); |
pop(@Apache::response::custom_answer); |
Line 1393 basically undef and 0 (both false) mean
|
Line 1343 basically undef and 0 (both false) mean
|
and all true values mean that they can't do any more work |
and all true values mean that they can't do any more work |
|
|
a return of undef means it is unattempted |
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 0 means it is both attempted and still has tries and |
|
is wrong or is only partially correct, and retries |
|
are allowed. |
a return of 1 means it is marked correct |
a return of 1 means it is marked correct |
a return of 2 means they have exceed maximum number of tries |
a return of 2 means they have exceeded maximum number of tries |
a return of 3 means it after the answer date |
a return of 3 means it is after the answer date |
|
|
=cut |
=cut |
|
|
Line 1413 sub check_status {
|
Line 1365 sub check_status {
|
return 3; |
return 3; |
} |
} |
my $status=&Apache::lonnet::EXT("user.resource.resource.$id.solved"); |
my $status=&Apache::lonnet::EXT("user.resource.resource.$id.solved"); |
if ($status =~ /^correct/) { return 1; } |
if ($status =~ /^correct/) { |
|
my $awarded=&Apache::lonnet::EXT("user.resource.resource.$id.awarded"); |
|
my $retrypartial=&Apache::lonnet::EXT("resource.$id.retrypartial"); |
|
unless (($retrypartial =~ /^1|on|yes$/) && ($awarded <1)) { |
|
return 1; |
|
} |
|
} |
if (!$status) { return undef; } |
if (!$status) { return undef; } |
my $maxtries=&Apache::lonnet::EXT("resource.$id.maxtries"); |
my $maxtries=&Apache::lonnet::EXT("resource.$id.maxtries"); |
if ($maxtries eq '') { $maxtries=2; } |
if ($maxtries eq '') { $maxtries=2; } |