version 1.279, 2011/03/05 20:06:33
|
version 1.286, 2011/04/29 01:41:12
|
Line 60 use LONCAPA;
|
Line 60 use LONCAPA;
|
|
|
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::inputtags',('hiddenline','textfield','textline')); |
&Apache::lonxml::register('Apache::inputtags',('hiddensubmission','hiddenline','textfield','textline')); |
} |
} |
|
|
=pod |
=pod |
Line 478 sub end_hiddenline {
|
Line 478 sub end_hiddenline {
|
return ""; |
return ""; |
} |
} |
|
|
|
|
|
sub start_hiddensubmission { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
my $result = ""; |
|
my $input_id = &start_input($parstack,$safeeval); |
|
if ($target eq 'web') { |
|
$Apache::lonxml::evaluate--; |
|
if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') { |
|
my $partid=$Apache::inputtags::part; |
|
my $id=$Apache::inputtags::response[-1]; |
|
if ($Apache::lonhomework::type ne 'exam') { |
|
my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval); |
|
$value = &HTML::Entities::encode($value,'<>&"'); |
|
$result= '<input type="hidden" name="HWVAL_'.$id.'" value="'.$value.'" />'; |
|
} |
|
} |
|
} elsif ($target eq 'edit') { |
|
$result=&Apache::edit::tag_start($target,$token); |
|
$result.=&Apache::edit::text_arg('Value:','value',$token,'15'); |
|
$result.=&Apache::edit::end_row(); |
|
$result.=&Apache::edit::end_table(); |
|
} elsif ($target eq 'modified') { |
|
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
|
$safeeval,'value'); |
|
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } |
|
} |
|
|
|
if ( ($target eq 'web' || $target eq 'tex') |
|
&& $Apache::lonhomework::type eq 'exam' |
|
&& &needs_exam_box($tagstack)) { |
|
$result.=&exam_box($target); |
|
} |
|
return $result; |
|
} |
|
|
|
sub end_hiddensubmission { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
if ($target eq 'web') { $Apache::lonxml::evaluate++; } |
|
elsif ($target eq 'edit') { return ('','no'); } |
|
&end_input(); |
|
return ""; |
|
} |
|
|
=pod |
=pod |
|
|
=item file_selector() |
=item file_selector() |
Line 801 sub finalizeawards {
|
Line 844 sub finalizeawards {
|
} |
} |
|
|
sub decideoutput { |
sub decideoutput { |
my ($award,$awarded,$awardmsg,$solved,$previous,$target)=@_; |
my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect)=@_; |
|
|
my $message=''; |
my $message=''; |
my $button=0; |
my $button=0; |
Line 819 sub decideoutput {
|
Line 862 sub decideoutput {
|
my $part = $Apache::inputtags::part; |
my $part = $Apache::inputtags::part; |
my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade"); |
my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade"); |
my $handgrade = ('yes' eq lc($tohandgrade)); |
my $handgrade = ('yes' eq lc($tohandgrade)); |
|
# |
|
# Should "Computer's Answer" be displayed? |
|
# Should not be displayed if still answerable, |
|
# if the problem is handgraded, |
|
# or if the problem does not give a correct answer |
|
# |
|
|
my $computer = ($handgrade)? '' |
my $computer = ($handgrade || $nocorrect)? '' |
: " ".&mt("Computer's answer now shown above."); |
: " ".&mt("Computer's answer now shown above."); |
&Apache::lonxml::debug("handgrade has :$handgrade:"); |
&Apache::lonxml::debug("handgrade has :$handgrade:"); |
|
|
Line 862 sub decideoutput {
|
Line 911 sub decideoutput {
|
} |
} |
} |
} |
} |
} |
$button=0; |
if ($awarded==1) { $button=0; } else { $button=1; } |
$previousmsg=''; |
$previousmsg=''; |
} elsif ($solved =~ /^excused/) { |
} elsif ($solved =~ /^excused/) { |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
Line 1088 sub decideoutput {
|
Line 1137 sub decideoutput {
|
} |
} |
$message.=&mt('Submissions to practice problems are not permanently recorded.'); |
$message.=&mt('Submissions to practice problems are not permanently recorded.'); |
} |
} |
|
|
return ($button,$css_class,$message,$previousmsg); |
return ($button,$css_class,$message,$previousmsg); |
} |
} |
|
|
Line 1141 sub setgradedata {
|
Line 1189 sub setgradedata {
|
$Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') { |
$Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') { |
$Apache::lonhomework::results{"resource.$id.afterduedate"}=$award; |
$Apache::lonhomework::results{"resource.$id.afterduedate"}=$award; |
return ''; |
return ''; |
} elsif ( $Apache::lonhomework::history{"resource.$id.solved"} !~ |
} elsif ( $Apache::lonhomework::history{"resource.$id.awarded"} < 1 |
/^correct/ |
|
|| $Apache::lonhomework::scantronmode |
|| $Apache::lonhomework::scantronmode |
|| &Apache::lonhomework::hide_problem_status() ) { |
|| &Apache::lonhomework::hide_problem_status() ) { |
# the student doesn't already have it correct, |
# the student doesn't already have it correct, |
Line 1263 sub setgradedata {
|
Line 1310 sub setgradedata {
|
$Apache::lonhomework::results{"resource.$id.previous"} = '0'; |
$Apache::lonhomework::results{"resource.$id.previous"} = '0'; |
} |
} |
} |
} |
} elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~ |
} elsif ( $Apache::lonhomework::history{"resource.$id.awarded"} == 1 ) { |
/^correct/ ) { |
|
#delete all data as they student already has it correct |
#delete all data as they student already has it correct |
&removealldata($id); |
&removealldata($id); |
#and since they didn't do anything we were never here |
#and since they didn't do anything we were never here |
Line 1361 sub grade {
|
Line 1407 sub grade {
|
} |
} |
|
|
sub get_grade_messages { |
sub get_grade_messages { |
my ($id,$prefix,$target,$status) = @_; |
my ($id,$prefix,$target,$status,$nocorrect) = @_; |
|
# nocorrect suppresses "Computer's answer now shown above" |
my ($message,$latemessage,$trystr,$previousmsg); |
my ($message,$latemessage,$trystr,$previousmsg); |
my $showbutton = 1; |
my $showbutton = 1; |
|
|
Line 1376 sub get_grade_messages {
|
Line 1422 sub get_grade_messages {
|
&Apache::lonxml::debug('Getting message'); |
&Apache::lonxml::debug('Getting message'); |
($showbutton,my $css_class,$message,$previousmsg) = |
($showbutton,my $css_class,$message,$previousmsg) = |
&decideoutput($award,$awarded,$awardmsg,$solved,$previous, |
&decideoutput($award,$awarded,$awardmsg,$solved,$previous, |
$target); |
$target,(($status eq 'CAN_ANSWER') || $nocorrect)); |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
$message='\vskip 2 mm '.$message.' '; |
$message='\vskip 2 mm '.$message.' '; |
} else { |
} else { |
Line 1523 sub previous_tries {
|
Line 1569 sub previous_tries {
|
|
|
my $txt_correct = &mt('Correct'); |
my $txt_correct = &mt('Correct'); |
my $awarded = $Apache::lonhomework::history{"$prefix.awarded"}; |
my $awarded = $Apache::lonhomework::history{"$prefix.awarded"}; |
my $txt_correct = &mt('Correct'); |
|
if ($awarded < 1 && $awarded > 0) { |
if ($awarded < 1 && $awarded > 0) { |
$txt_correct=&mt('Partially correct'); |
$txt_correct=&mt('Partially Correct'); |
} elsif ($awarded < 1) { |
} elsif ($awarded < 1) { |
if ($awarded eq '') { |
if ($awarded eq '') { |
$txt_correct=''; |
$txt_correct=''; |