version 1.67, 2001/09/14 20:17:35
|
version 1.70, 2001/10/13 05:59:18
|
Line 152 sub start_problem {
|
Line 152 sub start_problem {
|
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
|
|
|
|
if ($target eq 'web' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') { |
#handle exam checkout |
#handle exam checkout |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
my $token=$Apache::lonhomework::history{"resource.0.outtoken"}; |
my $token=$Apache::lonhomework::history{"resource.0.outtoken"}; |
Line 252 sub end_problem {
|
Line 252 sub end_problem {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result=''; |
my $result=''; |
my $status=$Apache::inputtags::status['-1']; |
my $status=$Apache::inputtags::status['-1']; |
if ($target eq 'grade' || $target eq 'web' ) { |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ) { |
if ( $target eq 'grade' && $Apache::inputtags::part eq '0' && |
if ( $target eq 'grade' && $Apache::inputtags::part eq '0' && |
$status eq 'CAN_ANSWER') { |
$status eq 'CAN_ANSWER') { |
# if part is zero, no <part>s existed, so we need to the grading |
# if part is zero, no <part>s existed, so we need to the grading |
&Apache::inputtags::grade; |
&Apache::inputtags::grade; |
} elsif ($Apache::inputtags::part eq '0') { |
} elsif ( $target eq 'web' && $Apache::inputtags::part eq '0') { |
# if part is zero, no <part>s existed, so we need show the current |
# if part is zero, no <part>s existed, so we need show the current |
# grading status |
# grading status |
$result.= &Apache::inputtags::gradestatus($Apache::inputtags::part); |
$result.= &Apache::inputtags::gradestatus($Apache::inputtags::part); |
} |
} |
if ($target eq 'web') { |
if ( |
|
($target eq 'web' && ($ENV{'request.state'} ne 'construct')) || |
|
($target eq 'answer') |
|
) { |
if ($status eq 'CAN_ANSWER') { |
if ($status eq 'CAN_ANSWER') { |
$result.="</form></body>\n"; |
$result.="</form></body>\n"; |
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') { |
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') { |
Line 321 sub end_library {
|
Line 324 sub end_library {
|
sub start_block { |
sub start_block { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
|
if ($target eq 'web' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') { |
my $code = @$parstack[$#$parstack]; |
my $code = @$parstack[$#$parstack]; |
$code =~ s/\"//g; |
$code =~ s/\"//g; |
$code .=';return $condition;'; |
$code .=';return $condition;'; |
Line 414 sub start_randomlist {
|
Line 417 sub start_randomlist {
|
sub shuffle { |
sub shuffle { |
my $a=shift; |
my $a=shift; |
my $i; |
my $i; |
&Apache::response::setrandomnumber(); |
if (defined(@$a)) { |
for($i=@$a;--$i;) { |
&Apache::response::setrandomnumber(); |
my $j=int rand($i+1); |
for($i=@$a;--$i;) { |
next if $i == $j; |
my $j=int rand($i+1); |
@$a[$i,$j] = @$a[$j,$i]; |
next if $i == $j; |
|
@$a[$i,$j] = @$a[$j,$i]; |
|
} |
} |
} |
} |
} |
|
|
Line 435 sub start_part {
|
Line 440 sub start_part {
|
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous=(); |
if ($target eq 'meta') { |
if ($target eq 'meta') { |
return &Apache::response::mandatory_part_meta; |
return &Apache::response::mandatory_part_meta; |
} elsif ($target eq 'web' || $target eq 'grade') { |
} elsif ($target eq 'web' || $target eq 'grade' || $target eq 'answer') { |
my ($status,$accessmsg) = &Apache::lonhomework::check_access($id); |
my ($status,$accessmsg) = &Apache::lonhomework::check_access($id); |
push (@Apache::inputtags::status,$status); |
push (@Apache::inputtags::status,$status); |
my $expression='$external::datestatus="'.$status.'";'; |
my $expression='$external::datestatus="'.$status.'";'; |
Line 468 sub end_part {
|
Line 473 sub end_part {
|
|
|
sub start_preduedate { |
sub start_preduedate { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
if ($target eq 'web' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') { |
if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && |
if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && |
$Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER' ) { |
$Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER' ) { |
&Apache::lonxml::get_all_text("/preduedate",$$parser[$#$parser]); |
&Apache::lonxml::get_all_text("/preduedate",$$parser[$#$parser]); |
Line 497 sub end_postanswerdate {
|
Line 502 sub end_postanswerdate {
|
|
|
sub start_notsolved { |
sub start_notsolved { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
if ($target eq 'web' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') { |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
&Apache::lonxml::debug("not solved has :$gradestatus:"); |
&Apache::lonxml::debug("not solved has :$gradestatus:"); |
if ($gradestatus =~ /^correct/) { |
if ($gradestatus =~ /^correct/) { |
Line 514 sub end_notsolved {
|
Line 519 sub end_notsolved {
|
|
|
sub start_solved { |
sub start_solved { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
if ($target eq 'web' || $target eq 'grade') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') { |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
if ($gradestatus !~ /^correct/) { |
if ($gradestatus !~ /^correct/) { |
&Apache::lonxml::get_all_text("/solved",$$parser[$#$parser]); |
&Apache::lonxml::get_all_text("/solved",$$parser[$#$parser]); |
Line 539 sub end_startouttext {
|
Line 544 sub end_startouttext {
|
my $text=''; |
my $text=''; |
|
|
if ($target eq 'edit') { |
if ($target eq 'edit') { |
$text=&Apache::lonxml::get_all_text("endouttext",$$parser[$#$parser]); |
$text=&Apache::lonxml::get_all_text("endouttext",$$parser[-1]); |
$result.=&Apache::edit::start_table($token)."<tr><td>Text Block</td> |
$result.=&Apache::edit::start_table($token)."<tr><td>Text Block</td> |
<td>Delete:". |
<td>Delete:". |
&Apache::edit::deletelist($target,$token) |
&Apache::edit::deletelist($target,$token) |
Line 573 sub delete_startouttext {
|
Line 578 sub delete_startouttext {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
# my $text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']); |
# my $text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']); |
my $text=$$parser['-1']->get_text("/endouttext"); |
my $text=$$parser['-1']->get_text("/endouttext"); |
my $token=$$parser['-1']->get_token(); |
my $ntoken=$$parser['-1']->get_token(); |
&Apache::lonxml::debug("Deleting :$text: and :$token->[0]:$token->[1]:$token->[2]: for startouttext"); |
&Apache::lonxml::debug("Deleting :$text: and :$ntoken->[0]:$ntoken->[1]:$ntoken->[2]: for startouttext"); |
&Apache::lonxml::end_tag($tagstack,$parstack,$token); |
&Apache::lonxml::end_tag($tagstack,$parstack,$ntoken); |
# Deleting 2 parallel tag pairs, but we need the numbers later to look like |
# Deleting 2 parallel tag pairs, but we need the numbers later to look like |
# they did the last time round |
# they did the last time round |
&Apache::lonxml::increasedepth($token); |
&Apache::lonxml::increasedepth($ntoken); |
&Apache::lonxml::decreasedepth($token); |
&Apache::lonxml::decreasedepth($ntoken); |
return 1; |
return 1; |
} |
} |
|
|