version 1.87, 2003/04/07 20:52:58
|
version 1.92, 2003/04/19 09:00:54
|
Line 89 sub start_textfield {
|
Line 89 sub start_textfield {
|
if ( $cols eq '') { $cols = 80; } |
if ( $cols eq '') { $cols = 80; } |
my $rows = &Apache::lonxml::get_param('rows',$parstack,$safeeval); |
my $rows = &Apache::lonxml::get_param('rows',$parstack,$safeeval); |
if ( $rows eq '') { $rows = 10; } |
if ( $rows eq '') { $rows = 10; } |
$result= '<textarea name="HWVAL'.$resid.'" '. |
$result= '<textarea name="HWVAL_'.$resid.'" '. |
"rows=\"$rows\" cols=\"$cols\">".$oldresponse; |
"rows=\"$rows\" cols=\"$cols\">".$oldresponse; |
if ($oldresponse ne '') { |
if ($oldresponse ne '') { |
#get rid of any startup text if the user has already responded |
#get rid of any startup text if the user has already responded |
Line 104 sub start_textfield {
|
Line 104 sub start_textfield {
|
} |
} |
} elsif ($target eq 'grade') { |
} elsif ($target eq 'grade') { |
my $seedtext=&Apache::lonxml::get_all_text("/textfield",$parser); |
my $seedtext=&Apache::lonxml::get_all_text("/textfield",$parser); |
if ($seedtext eq $ENV{'form.HWVAL'.$resid}) { |
if ($seedtext eq $ENV{'form.HWVAL_'.$resid}) { |
# if the seed text is still there it wasn't a real submission |
# if the seed text is still there it wasn't a real submission |
$ENV{'form.HWVAL'.$resid}=''; |
$ENV{'form.HWVAL_'.$resid}=''; |
} |
} |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result.=&Apache::edit::tag_start($target,$token); |
$result.=&Apache::edit::tag_start($target,$token); |
Line 164 sub start_textline {
|
Line 164 sub start_textline {
|
my $id=$Apache::inputtags::response[-1]; |
my $id=$Apache::inputtags::response[-1]; |
my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"}); |
my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"}); |
if ($Apache::lonhomework::type ne 'exam') { |
if ($Apache::lonhomework::type ne 'exam') { |
$result= '<input type="text" name="HWVAL'.$id.'" value="'. |
$result= '<input type="text" name="HWVAL_'.$id.'" value="'. |
$oldresponse.'" size="'.$size.'" maxlength="'.$maxlength.'" />'; |
$oldresponse.'" size="'.$size.'" maxlength="'.$maxlength.'" />'; |
} |
} |
} else { |
} else { |
Line 252 sub finalizeawards {
|
Line 252 sub finalizeawards {
|
foreach $award (@_) { if ($award eq 'SUBMITTED') {$result=$award; last;} } |
foreach $award (@_) { if ($award eq 'SUBMITTED') {$result=$award; last;} } |
} |
} |
if ($result eq '' ) { |
if ($result eq '' ) { |
|
foreach $award (@_) { if ($award eq 'ASSIGNED_SCORE') {$result=$award; last;} } |
|
} |
|
if ($result eq '' ) { |
foreach $award (@_) { if ($award eq 'APPROX_ANS') {$result=$award; last;} } |
foreach $award (@_) { if ($award eq 'APPROX_ANS') {$result=$award; last;} } |
} |
} |
if ($result eq '' ) { $result='EXACT_ANS'; } |
if ($result eq '' ) { $result='EXACT_ANS'; } |
Line 267 sub decideoutput {
|
Line 270 sub decideoutput {
|
if ($previous) { $previousmsg='You have entered that answer before'; } |
if ($previous) { $previousmsg='You have entered that answer before'; } |
|
|
if ($solved =~ /^correct/) { |
if ($solved =~ /^correct/) { |
if ($target eq 'tex') { |
if ($award eq 'ASSIGNED_SCORE') { |
$message = '\textbf{You are correct}. Your receipt is '. |
$message = "A score has been assigned."; |
&Apache::lonnet::receipt; |
} else { |
} else { |
if ($target eq 'tex') { |
$message = "<b>You are correct.</b> Your receipt is ". |
$message = '\textbf{You are correct}.'; |
&Apache::lonnet::receipt; |
} else { |
} |
$message = "<b>You are correct.</b>"; |
$button=0; |
} |
$previousmsg=''; |
$message=' Your receipt is '.&Apache::lonnet::receipt; |
|
} |
|
$button=0; |
|
$previousmsg=''; |
} elsif ($solved =~ /^excused/) { |
} elsif ($solved =~ /^excused/) { |
$message = "<b>You are excused from the problem.</b>"; |
$message = "<b>You are excused from the problem.</b>"; |
$button=0; |
|
$previousmsg=''; |
|
} elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) { |
|
if ($solved =~ /^incorrect/ || $solved eq '') { |
|
$message = "Incorrect"; |
|
$button=1; |
|
} else { |
|
$message = "<b>You are correct.</b> Your receipt is ". |
|
&Apache::lonnet::receipt; |
|
$button=0; |
$button=0; |
$previousmsg=''; |
$previousmsg=''; |
} |
} elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) { |
|
if ($solved =~ /^incorrect/ || $solved eq '') { |
|
$message = "Incorrect"; |
|
$button=1; |
|
} else { |
|
$message = "<b>You are correct.</b> Your receipt is ". |
|
&Apache::lonnet::receipt; |
|
$button=0; |
|
$previousmsg=''; |
|
} |
} elsif ($award eq 'NO_RESPONSE') { |
} elsif ($award eq 'NO_RESPONSE') { |
$message = ''; |
$message = ''; |
$button=1; |
$button=1; |
} elsif ($award eq 'MISSING_ANSWER') { |
} elsif ($award eq 'MISSING_ANSWER') { |
$message = 'Some parts were not submitted'; |
$message = 'Some parts were not submitted'; |
$button = 1; |
$button = 1; |
} elsif ($award eq 'WANTED_NUMERIC') { |
} elsif ($award eq 'WANTED_NUMERIC') { |
$message = "This question expects a numeric answer"; |
$message = "This question expects a numeric answer"; |
$button=1; |
$button=1; |
} elsif ($award eq 'MISORDERED_RANK') { |
} elsif ($award eq 'MISORDERED_RANK') { |
$message = 'You have provided an invalid ranking, please refer to '. |
$message = 'You have provided an invalid ranking, please refer to '. |
&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.'; |
&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.'; |
$button=1; |
$button=1; |
} elsif ($award eq 'INVALID_FILETYPE') { |
} elsif ($award eq 'INVALID_FILETYPE') { |
$message = 'The filetype extension of the file you uploaded is not allowed.'; |
$message = 'The filetype extension of the file you uploaded is not allowed.'; |
$button=1; |
$button=1; |
} elsif ($award eq 'SIG_FAIL') { |
} elsif ($award eq 'SIG_FAIL') { |
$message = "Please adjust significant figures.";# you provided %s significant figures"; |
$message = "Please adjust significant figures.";# you provided %s significant figures"; |
$button=1; |
$button=1; |
} elsif ($award eq 'UNIT_FAIL') { |
} elsif ($award eq 'UNIT_FAIL') { |
$message = "Units incorrect. ". |
$message = "Units incorrect. ". |
&Apache::loncommon::help_open_topic('Physical_Units'); #Computer reads units as %s"; |
&Apache::loncommon::help_open_topic('Physical_Units'); #Computer reads units as %s"; |
$button=1; |
$button=1; |
} elsif ($award eq 'UNIT_NOTNEEDED') { |
} elsif ($award eq 'UNIT_NOTNEEDED') { |
$message = "Only a number required.";# Computer reads units of %s"; |
$message = "Only a number required.";# Computer reads units of %s"; |
$button=1; |
$button=1; |
} elsif ($award eq 'NO_UNIT') { |
} elsif ($award eq 'NO_UNIT') { |
$message = "Units required". |
$message = "Units required". |
&Apache::loncommon::help_open_topic('Physical_Units'); |
&Apache::loncommon::help_open_topic('Physical_Units'); |
$button=1; |
$button=1; |
} elsif ($award eq 'BAD_FORMULA') { |
} elsif ($award eq 'BAD_FORMULA') { |
$message = "Unable to understand formula"; |
$message = "Unable to understand formula"; |
$button=1; |
$button=1; |
} elsif ($award eq 'INCORRECT') { |
} elsif ($award eq 'INCORRECT') { |
$message = "Incorrect"; |
$message = "Incorrect"; |
$button=1; |
$button=1; |
} elsif ($award eq 'SUBMITTED') { |
} elsif ($award eq 'SUBMITTED') { |
$message = "Your submission has been recorded."; |
$message = "Your submission has been recorded."; |
$button=1; |
$button=1; |
} elsif ($award eq 'DRAFT') { |
} elsif ($award eq 'DRAFT') { |
$message = "A draft copy has been saved."; |
$message = "A draft copy has been saved."; |
$button=1; |
$button=1; |
|
} elsif ($award eq 'ASSIGNED_SCORE') { |
|
$message = "A score has been assigned."; |
|
$button=0; |
} else { |
} else { |
$message = "Unknown message: $award"; |
$message = "Unknown message: $award"; |
$button=1; |
$button=1; |
|
} |
|
if (lc($Apache::lonhomework::problemstatus) ne 'yes') { |
|
$message = "Answer Submitted"; |
|
$button=1; |
} |
} |
if ($Apache::lonhomework::type eq 'exam') {$message='';$previousmsg='';} |
|
return ($button,$message,$previousmsg); |
return ($button,$message,$previousmsg); |
} |
} |
|
|
sub remove_alldata { |
sub removealldata { |
my ($id)=@_; |
my ($id)=@_; |
foreach my $key (keys(%Apache::lonhomework::results)) { |
foreach my $key (keys(%Apache::lonhomework::results)) { |
if (($key =~ /^resource\.\Q$id\E\./) && ($key !~ /\.collaborators$/)) { |
if (($key =~ /^resource\.\Q$id\E\./) && ($key !~ /\.collaborators$/)) { |
Line 363 sub setgradedata {
|
Line 375 sub setgradedata {
|
if ($Apache::lonhomework::history{"resource.$id.afterduedate"}) { |
if ($Apache::lonhomework::history{"resource.$id.afterduedate"}) { |
$Apache::lonhomework::results{"resource.$id.afterduedate"}=''; |
$Apache::lonhomework::results{"resource.$id.afterduedate"}=''; |
} |
} |
if ( $award eq 'APPROX_ANS' || $award eq 'EXACT_ANS' ) { |
if ( $award eq 'ASSIGNED_SCORE') { |
|
$Apache::lonhomework::results{"resource.$id.tries"} = |
|
$Apache::lonhomework::history{"resource.$id.tries"} + 1; |
|
$Apache::lonhomework::results{"resource.$id.solved"} = |
|
'correct_by_student'; |
|
my $numawards=scalar(@Apache::inputtags::response); |
|
$Apache::lonhomework::results{"resource.$id.awarded"} = 0; |
|
foreach my $res (@Apache::inputtags::response) { |
|
$Apache::lonhomework::results{"resource.$id.awarded"}+= |
|
$Apache::lonhomework::results{"resource.$id.$res.awarded"}; |
|
} |
|
$Apache::lonhomework::results{"resource.$id.awarded"}/=$numawards; |
|
} elsif ( $award eq 'APPROX_ANS' || $award eq 'EXACT_ANS' ) { |
$Apache::lonhomework::results{"resource.$id.tries"} = |
$Apache::lonhomework::results{"resource.$id.tries"} = |
$Apache::lonhomework::history{"resource.$id.tries"} + 1; |
$Apache::lonhomework::history{"resource.$id.tries"} + 1; |
$Apache::lonhomework::results{"resource.$id.solved"} = |
$Apache::lonhomework::results{"resource.$id.solved"} = |