version 1.53, 2005/09/22 22:25:35
|
version 1.54, 2005/09/29 19:15:47
|
Line 265 STYLE
|
Line 265 STYLE
|
|
|
} |
} |
|
|
|
sub show_task { |
|
my ($status,$previous)=@_; |
|
if (!$previous && ( |
|
( $status eq 'CLOSED' ) || |
|
( $status eq 'BANNED') || |
|
( $status eq 'UNAVAILABLE') || |
|
( $status eq 'NOT_IN_A_SLOT') || |
|
( $status eq 'NEEDS_CHECKIN') || |
|
( $status eq 'WAITING_FOR_GRADE') || |
|
( $status eq 'INVALID_ACCESS') )) { |
|
return 0; |
|
} |
|
return 1; |
|
} |
|
|
|
sub internal_location { |
|
my ($id)=@_; |
|
return '<!-- LONCAPA_INTERNAL_ADD_TASK_STATUS'.$id.' -->'; |
|
} |
|
|
sub start_Task { |
sub start_Task { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
|
Line 308 sub start_Task {
|
Line 328 sub start_Task {
|
&Apache::run::run($expression,$safeeval); |
&Apache::run::run($expression,$safeeval); |
&Apache::lonxml::debug("Got $status"); |
&Apache::lonxml::debug("Got $status"); |
$body_tag_start.=&add_previous_version_button($status); |
$body_tag_start.=&add_previous_version_button($status); |
if (!$previous && ( |
if (!&show_task($status,$previous)) { |
( $status eq 'CLOSED' ) || |
|
( $status eq 'BANNED') || |
|
( $status eq 'UNAVAILABLE') || |
|
( $status eq 'NOT_IN_A_SLOT') || |
|
( $status eq 'NEEDS_CHECKIN') || |
|
( $status eq 'WAITING_FOR_GRADE') || |
|
( $status eq 'INVALID_ACCESS') )) { |
|
my $bodytext=&Apache::lonxml::get_all_text("/task",$parser); |
my $bodytext=&Apache::lonxml::get_all_text("/task",$parser); |
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
$result.= $head_tag_start.'</head>'.$body_tag_start; |
$result.= $head_tag_start.'</head>'.$body_tag_start; |
Line 354 sub start_Task {
|
Line 367 sub start_Task {
|
$result.="$head_tag_start<title>$name</title></head> |
$result.="$head_tag_start<title>$name</title></head> |
$body_tag_start \n".&style(); |
$body_tag_start \n".&style(); |
|
|
my ($version,$previous)=&get_version(); |
|
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { |
|
$result.='<h1><font color="red">'.&mt('Did not pass').'</font></h1>'; |
|
if (!$previous) { |
|
$result.=&add_request_another_attempt_button(); |
|
} |
|
} |
|
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'pass') { |
|
$result.='<h1><font color="green">'.&mt('Passed').'</font></h1>'; |
|
} |
|
$result.=$form_tag_start. |
$result.=$form_tag_start. |
'<input type="hidden" name="submitted" value="yes" />'; |
'<input type="hidden" name="submitted" value="yes" />'; |
$result.=&preserve_grade_info(); |
$result.=&preserve_grade_info(); |
|
$result.=&internal_location(); |
|
&Apache::lonxml::startredirection(); |
} |
} |
} elsif ( ($target eq 'grade' && $env{'form.webgrade'}) || |
} elsif ( ($target eq 'grade' && $env{'form.webgrade'}) || |
$target eq 'webgrade') { |
$target eq 'webgrade') { |
Line 384 sub start_Task {
|
Line 388 sub start_Task {
|
# there isn't reshow the queue.... |
# there isn't reshow the queue.... |
my ($todo,$status_code)=&get_key_todo($target); |
my ($todo,$status_code)=&get_key_todo($target); |
|
|
&Apache::lonnet::logthis("got todo -$todo- stat -$status_code-"); |
|
if ($todo) { |
if ($todo) { |
&setup_env_for_other_user($todo,$safeeval); |
&setup_env_for_other_user($todo,$safeeval); |
my ($symb,$uname,$udom)=&decode_queue_key($todo); |
my ($symb,$uname,$udom)=&decode_queue_key($todo); |
Line 448 sub get_key_todo {
|
Line 451 sub get_key_todo {
|
my $todo; |
my $todo; |
|
|
if (defined($env{'form.reviewasubmission'})) { |
if (defined($env{'form.reviewasubmission'})) { |
&Apache::lonnet::logthis("review a submission...."); |
&Apache::lonxml::debug("review a submission...."); |
$env{'form.queue'}='reviewqueue'; |
$env{'form.queue'}='reviewqueue'; |
return (undef,'show_list'); |
return (undef,'show_list'); |
} |
} |
Line 547 sub end_Task {
|
Line 550 sub end_Task {
|
($target eq 'answer') || ($target eq 'tex') |
($target eq 'answer') || ($target eq 'tex') |
) { |
) { |
if ($target eq 'web') { |
if ($target eq 'web') { |
|
if (&show_task($status,$previous)) { |
|
$result.=&Apache::lonxml::endredirection(); |
|
} |
if ($status eq 'CAN_ANSWER' && !$previous) { |
if ($status eq 'CAN_ANSWER' && !$previous) { |
$result.="\n".'<table border="1">'. |
$result.="\n".'<table border="1">'. |
&Apache::inputtags::file_selector("$version.0", |
&Apache::inputtags::file_selector("$version.0", |
Line 558 sub end_Task {
|
Line 564 sub end_Task {
|
"</table>"; |
"</table>"; |
$result.=&Apache::inputtags::gradestatus('0'); |
$result.=&Apache::inputtags::gradestatus('0'); |
} |
} |
|
if (&show_task($status,$previous)) { |
|
my $bt_status=$Apache::lonhomework::history{"resource.$version.status"}; |
|
my $title=&Apache::lonnet::gettitle(); |
|
my %slot=&Apache::lonnet::get_slot($Apache::inputtags::slot_name); |
|
my $description=&Apache::slotrequest::get_description($Apache::inputtags::slot_name,\%slot); |
|
|
|
my $status; |
|
$status.="\n<div class='$bt_status'>\n"; |
|
|
|
if ($bt_status eq 'pass') { |
|
$status.='<h2>You passed the '.$title.' given on '. |
|
$description.'.</h2>'; |
|
} |
|
if ($bt_status eq 'fail') { |
|
$status.='<h2>You did not pass the '.$title.' given on '. |
|
$description.'.</h2>'; |
|
if (!$previous) { |
|
$status.=&add_request_another_attempt_button(); |
|
} |
|
} |
|
my $man_count=0; |
|
my $opt_count=0; |
|
my $opt_passed=0; |
|
foreach my $dim_id (@Apache::bridgetask::dimensionlist) { |
|
if ($Apache::bridgetask::dimensionmandatory{$dim_id} |
|
eq 'N') { |
|
$opt_count++; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim_id.status"} eq 'pass') { |
|
$opt_passed++; |
|
} |
|
} else { |
|
$man_count++; |
|
} |
|
} |
|
my $opt_req=&Apache::lonxml::get_param('OptionalRequired', |
|
$parstack,$safeeval); |
|
if ($opt_req !~ /\S/) { $opt_req='0'; } |
|
$status.="\n<p>".&mt('You needed to pass all of the [_1] mandatory components and [_2] of the [_3] optional components on the bridge task.',$man_count,$opt_req,$opt_count)."</p></div>\n"; |
|
|
|
my $internal_location=&internal_location(); |
|
$result=~s/\Q$internal_location\E/$status/; |
|
} |
} |
} |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$result.=&Apache::lonxml::xmlend().'</html>'; |
$result.=&Apache::lonxml::xmlend().'</html>'; |
Line 1176 sub start_Dimension {
|
Line 1224 sub start_Dimension {
|
undef(@Apache::bridgetask::instance); |
undef(@Apache::bridgetask::instance); |
$Apache::bridgetask::dimensionmandatory{$dim_id}= |
$Apache::bridgetask::dimensionmandatory{$dim_id}= |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
return ''; |
&Apache::lonxml::startredirection(); |
|
return &internal_location($dim_id); |
} |
} |
|
|
sub get_instance { |
sub get_instance { |
Line 1192 sub get_instance {
|
Line 1241 sub get_instance {
|
my $last_link; |
my $last_link; |
sub end_Dimension { |
sub end_Dimension { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result=&Apache::lonxml::endredirection(); |
my $dim=&get_id($parstack,$safeeval); |
my $dim=&get_id($parstack,$safeeval); |
my $instance=&get_instance(); |
my $instance=&get_instance(); |
my $version=&get_version(); |
my $version=&get_version(); |
Line 1203 sub get_instance {
|
Line 1252 sub get_instance {
|
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.text'}); |
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.text'}); |
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'pass' || |
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'pass' || |
$Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { |
$Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { |
|
|
|
my $dim_status=$Apache::lonhomework::history{"resource.$version.$dim.status"}; |
|
my $mandatory='Mandatory'; |
|
if ($Apache::bridgetask::dimensionmandatory{$dim} eq 'N') { |
|
$mandatory='Optional'; |
|
} |
|
my $dim_info="<div class='$dim_status'>\n"; |
|
if ($dim_status eq 'pass') { |
|
$dim_info.='<h3>Question : you passed this '.$mandatory.' question</h3>'; |
|
} |
|
if ($dim_status eq 'fail') { |
|
$dim_info.='<h3>Question : you did not pass this '.$mandatory.' question</h3>'; |
|
} |
|
my $man_count=0; |
|
my $opt_count=0; |
|
my $opt_passed=0; |
|
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
|
if ($dimension{$instance.'.criteria.'.$id.'.mandatory'} |
|
eq 'N') { |
|
$opt_count++; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"} eq 'pass') { |
|
$opt_passed++; |
|
} |
|
} else { |
|
$man_count++; |
|
} |
|
} |
|
my $opt_req=&Apache::lonxml::get_param('OptionalRequired', |
|
$parstack,$safeeval); |
|
if ($opt_req !~ /\S/) { $opt_req='0'; } |
|
$dim_info.="\n<p>".&mt('You passed all of the mandatory components and [_1] of the [_2] optional components, of which you were required to pass [_3].',$opt_passed,$opt_count,$opt_req)."</p>\n</div>"; |
|
|
|
my $internal_location=&internal_location($dim); |
|
$result=~s/\Q$internal_location\E/$dim_info/; |
|
|
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
my $status=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"}; |
my $status=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"}; |
my $comment=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}; |
my $comment=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}; |
Line 1219 sub get_instance {
|
Line 1303 sub get_instance {
|
} |
} |
my $status_display=$status; |
my $status_display=$status; |
$status_display=~s/^([a-z])/uc($1)/e; |
$status_display=~s/^([a-z])/uc($1)/e; |
|
@Apache::scripttag::parser_env = @_; |
$result.='<div class="'.$status.'"><h4>'.$mandatory. |
$result.='<div class="'.$status.'"><h4>'.$mandatory. |
' Criteria</h4><p>'. |
' Criteria</h4><p>'; |
$dimension{$instance.'.criteria.'.$id}. |
@Apache::scripttag::parser_env = @_; |
'</p><p class="grade">'.$status_display.'</p>'; |
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.criteria.'.$id}); |
|
$result.='</p><p class="grade">'.$status_display.'</p>'; |
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}) { |
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}) { |
$result.='<p class="comment">'.$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}.'</p>'; |
$result.='<p class="comment">'.$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}.'</p>'; |
} |
} |