version 1.9, 2000/12/01 00:44:48
|
version 1.10, 2000/12/04 21:15:33
|
Line 5 package Apache::inputtags;
|
Line 5 package Apache::inputtags;
|
use strict; |
use strict; |
|
|
sub BEGIN { |
sub BEGIN { |
&Apache::lonxml::register('Apache::inputtags',('textarea','textline','answergroup','datasubmission')); |
&Apache::lonxml::register('Apache::inputtags',('textarea','textline','datasubmission')); |
} |
} |
|
|
|
|
Line 21 sub initialize_inputtags {
|
Line 21 sub initialize_inputtags {
|
sub start_textarea { |
sub start_textarea { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my $result = ""; |
my $result = ""; |
$Apache::inputtags::curvalue++; |
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$result= '<textarea name="HWVAL'.$Apache::inputtags::curvalue.'" value="">'; |
$result= '<textarea name="HWVAL'.$Apache::inputtags::curvalue.'" value="">'; |
} |
} |
Line 30 sub start_textarea {
|
Line 29 sub start_textarea {
|
|
|
sub end_textarea { |
sub end_textarea { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
return "</textarea>"; |
if ($target eq 'web') { |
|
return "</textarea>"; |
|
} |
|
return ''; |
} |
} |
|
|
sub start_textline { |
sub start_textline { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my $result = ""; |
my $result = ""; |
$Apache::inputtags::curvalue++; |
|
my $args =''; |
|
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
|
my $size = &Apache::run::run("{$args;".'return $size}',$safeeval); |
|
if ($size eq '') { $size=20; } |
|
if ($target eq 'web') { |
if ($target eq 'web') { |
|
my $args =''; |
|
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
|
my $size = &Apache::run::run("{$args;".'return $size}',$safeeval); |
|
if ($size eq '') { $size=20; } |
$result= '<input type="text" name="HWVAL'.$Apache::inputtags::curvalue.'" value="" size="'.$size.'">'; |
$result= '<input type="text" name="HWVAL'.$Apache::inputtags::curvalue.'" value="" size="'.$size.'">'; |
} |
} |
return $result; |
return $result; |
Line 52 sub end_textline {
|
Line 53 sub end_textline {
|
return ""; |
return ""; |
} |
} |
|
|
sub start_answergroup { |
#answergroup is deprecated |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
#sub start_answergroup { |
my $args =''; |
# my ($target,$token,$parstack,$parser,$safeeval)=@_; |
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
# my $args =''; |
my $id = &Apache::run::run("{$args;".'return $id}',$safeeval); |
# if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
push (@Apache::inputtags::answergroup,$id); |
# my $id = &Apache::run::run("{$args;".'return $id}',$safeeval); |
if ($target == 'web') { |
# push (@Apache::inputtags::answergroup,$id); |
|
# if ($target == 'web') { |
} |
# |
return ''; |
# } |
} |
# return ''; |
|
#} |
sub end_answergroup { |
# |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
#sub end_answergroup { |
return ''; # <answergroup> has ben deprecated |
# my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my $args =''; |
# return ''; # <answergroup> has ben deprecated |
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
# my $args =''; |
my $id = &Apache::run::run("{$args;".'return $id}',$safeeval); |
# if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } |
push (@Apache::inputtags::answergroup,$id); |
# my $id = &Apache::run::run("{$args;".'return $id}',$safeeval); |
my $result=''; |
# push (@Apache::inputtags::answergroup,$id); |
my $button='<input type="submit" name="submit" value="Submit All Answers">'; |
# my $result=''; |
my $showbutton='1'; |
# my $button='<input type="submit" name="submit" value="Submit All Answers">'; |
my $usedtry='1'; |
# my $showbutton='1'; |
my $response=''; |
# my $usedtry='1'; |
if ( $target == 'web' ) { |
# my $response=''; |
if ( defined $ENV{'form.submit'}) { |
# if ( $target == 'web' ) { |
} |
# if ( defined $ENV{'form.submit'}) { |
if ($showbutton > 0) { $result.=$button } |
# } |
} |
# if ($showbutton > 0) { $result.=$button } |
pop @Apache::inputtags::answergroup; |
# } |
return $result; |
# pop @Apache::inputtags::answergroup; |
} |
# return $result; |
|
#} |
|
|
|
|
sub start_datasubmission { |
sub start_datasubmission { |
Line 94 sub end_datasubmission {
|
Line 96 sub end_datasubmission {
|
if ( $target == 'web' ) { |
if ( $target == 'web' ) { |
return '<input type="submit" name="submit" value="Submit All Data">'; |
return '<input type="submit" name="submit" value="Submit All Data">'; |
} |
} |
|
return ''; |
} |
} |
|
|
sub finalizeawards { |
sub finalizeawards { |
Line 135 sub finalizeawards {
|
Line 138 sub finalizeawards {
|
return $result |
return $result |
} |
} |
|
|
|
sub decideoutput { |
|
my ($award)=@_; |
|
my $message=''; |
|
my $button=0; |
|
my $tries=0; |
|
if ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) { |
|
$message = "Yes, Computer gets: "; |
|
$tries=1; $button=0; |
|
|
|
} elsif ($award eq 'WANTED_NUMERIC') { |
|
$message = "This question expects a numeric answer"; |
|
$tries=0; $button=1; |
|
} elsif ($award eq 'SIG_FAIL') { |
|
$message = "Please adjust significant figures, you provided %s significant figures"; |
|
$tries=0; $button=1; |
|
} elsif ($award eq 'UNIT_FAIL') { |
|
$message = "Units incorrect, Computer reads units as %s"; |
|
$tries=0; $button=1; |
|
} elsif ($award eq 'UNIT_NOTNEEDED') { |
|
$message = "Only a number required, Computer reads units of %s"; |
|
$tries=0; $button=1; |
|
} elsif ($award eq 'NO_UNIT') { |
|
$message = "Units required"; |
|
$tries=0; $button=1; |
|
} elsif ($award eq 'BAD_FORMULA') { |
|
$message = "Unable to understand formula"; |
|
$tries=0; $button=1; |
|
} elsif ($award eq 'INCORRECT') { |
|
$message = "Incorrect"; |
|
$tries=0; $button=1; |
|
} else { |
|
$message = "Unknown message: $award"; |
|
$tries=0; $button=1; |
|
} |
|
return ($tries,$button,$message); |
|
} |
|
|
sub grade { |
sub grade { |
my ($target) = @_; |
my ($target) = @_; |
my $id = $Apache::inputtags::part; |
my $id = $Apache::inputtags::part; |
my $result=''; |
my $result=''; |
my $button='<input type="submit" name="submit" value="Submit All Answers">'; |
my $button='<input type="submit" name="submit" value="Submit All Answers">'; |
my $showbutton='1'; |
|
my $usedtry='1'; |
|
my $response=''; |
my $response=''; |
if ( $target == 'web' ) { |
if ( $target == 'web' ) { |
if ( defined $ENV{'form.submit'}) { |
if ( defined $ENV{'form.submit'}) { |
my @awards = (); |
my @awards = (); |
|
&Apache::lonxml::debug("$#Apache::inputtags::responselist"); |
foreach $response (@Apache::inputtags::responselist) { |
foreach $response (@Apache::inputtags::responselist) { |
my $value=$Apache::lonhomework::results{"response.awarddetail.$id.$response"}; |
&Apache::lonxml::debug("looking for response.awarddetail.$id.$response"); |
|
my $value=$Apache::lonhomework::results{"resource.awarddetail.$id.$response"}; |
if ( $value ne '' ) { |
if ( $value ne '' ) { |
&Apache::lonxml::debug("keep ing $value from $response for $id"); |
&Apache::lonxml::debug("keep ing $value from $response for $id"); |
push (@awards,$value); |
push (@awards,$value); |
Line 156 sub grade {
|
Line 196 sub grade {
|
} |
} |
} |
} |
my $finalaward = &finalizeawards(@awards); |
my $finalaward = &finalizeawards(@awards); |
|
my ($triesinc,$showbutton,$message) = &decideoutput($finalaward); |
|
$Apache::lonhomework::results{"resource.tries.$id"} = |
|
$Apache::lonhomework::history{"resource.tries.$id"} + 1; |
&Apache::lonxml::debug("final award $finalaward"); |
&Apache::lonxml::debug("final award $finalaward"); |
} |
} |
if ($showbutton > 0) { $result.=$button } |
if ($showbutton > 0) { $result.=$button } |