Diff for /loncom/homework/bridgetask.pm between versions 1.53 and 1.54

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>';
     }      }

Removed from v.1.53  
changed lines
  Added in v.1.54


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>