Diff for /loncom/homework/bridgetask.pm between versions 1.12 and 1.13

version 1.12, 2005/04/08 19:21:52 version 1.13, 2005/04/29 21:22:33
Line 82  sub add_previous_version_button { Line 82  sub add_previous_version_button {
     return $result;      return $result;
 }  }
   
   sub add_grading_button {
       my $result;
       $result.=' <input type="submit" name="gradeasubmission" value="'.
    &mt("Get a submission to grade").'" />';
       $result.='<input type="hidden" name="grade_target" value="webgrade" />';
       return $result;
   }
   
 sub start_Task {  sub start_Task {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
     &Apache::structuretags::initialize_storage();      &Apache::structuretags::initialize_storage();
     &Apache::lonhomework::showhash(%Apache::lonhomework::history);      &Apache::lonhomework::showhash(%Apache::lonhomework::history);
   
     my ($status,$accessmsg,$slot);      my ($status,$accessmsg,$slot);
     $Apache::lonhomework::parsing_a_task=1;      $Apache::lonhomework::parsing_a_task=1;
     #should get back a <html> or the neccesary stuff to start XML/MathML      #should get back a <html> or the neccesary stuff to start XML/MathML
Line 96  sub start_Task { Line 103  sub start_Task {
   
     if ($target eq 'web') {      if ($target eq 'web') {
  $body_tag_start.=&add_previous_version_button();   $body_tag_start.=&add_previous_version_button();
    if ($Apache::lonhomework::modifygrades) {
       $body_tag_start.='<form name="gradesubmission" method="POST" action="';
       my $uri=$env{'request.uri'};
       if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); }
       $body_tag_start.=$uri.'">'.&add_grading_button()."</form>";
    }
     }      }
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||      if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
  $target eq 'tex') {   $target eq 'tex') {
Line 159  sub start_Task { Line 172  sub start_Task {
  }   }
     }      }
  }   }
       } elsif ($target eq 'webgrade') {
    $result.=$head_tag_start.$body_tag_start.$form_tag_start.
       'Yahoo!';
     } else {      } else {
  # page_start returned a starting result, delete it if we don't need it   # page_start returned a starting result, delete it if we don't need it
  $result = '';   $result = '';
Line 171  sub end_Task { Line 187  sub end_Task {
     my $result='';      my $result='';
     my $status=$Apache::inputtags::status['-1'];      my $status=$Apache::inputtags::status['-1'];
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||      if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
  $target eq 'tex') {   $target eq 'tex' || $target eq 'webgrade') {
  if (   if (
     (($target eq 'web') && ($env{'request.state'} ne 'construct')) ||      (($target eq 'web') && ($env{'request.state'} ne 'construct')) ||
     ($target eq 'answer') || ($target eq 'tex')      ($target eq 'answer') || ($target eq 'tex')
Line 184  sub end_Task { Line 200  sub end_Task {
   "</table>";    "</table>";
     $result.=&Apache::inputtags::gradestatus('0');      $result.=&Apache::inputtags::gradestatus('0');
  }   }
       } 
       if ($target eq 'web' || $target eq 'webgrade') {
  $result.=&Apache::lonxml::xmlend().'</html>';   $result.=&Apache::lonxml::xmlend().'</html>';
     }      }
  }   }
Line 210  sub start_ClosingParagraph { Line 228  sub start_ClosingParagraph {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
     if ($target eq 'web') {      if ($target eq 'web') {
       } elsif ($target eq 'webgrade') {
    &Apache::lonxml::startredirection();
     }      }
     return $result;      return $result;
 }  }
Line 218  sub end_ClosingParagraph { Line 238  sub end_ClosingParagraph {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
     if ($target eq 'web') {      if ($target eq 'web') {
       } elsif ($target eq 'webgrade') {
    &Apache::lonxml::endredirection();
     }      }
     return $result;      return $result;
 }  }
Line 233  sub start_Dimension { Line 255  sub start_Dimension {
     return '';      return '';
 }  }
   
   sub get_instance {
       #FIXME just grabbing the first one for now, need
       #to randomly pick one until all have been seen
       #then start repicking
       &Apache::response::pushrandomnumber();
       my @order=&Math::Random::random_permutation(@{$dimension{'instances'}});
       return $order[0];
   }
   
 sub end_Dimension {  sub end_Dimension {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
     if ($target eq 'web') {      if ($target eq 'web') {
  #FIXME just grabbing the first one for now, need   my $instance=&get_instance();
  #to randomly pick one until all have been seen  
  #then start repicking  
  &Apache::response::pushrandomnumber();  
  my @order=&Math::Random::random_permutation(@{$dimension{'instances'}});  
  my $instance=$order[0];  
  $result=$dimension{'intro'}.$dimension{$instance.'.text'};   $result=$dimension{'intro'}.$dimension{$instance.'.text'};
  #FIXME: don't show the criteria yet      } elsif ($target eq 'webgrade') {
  #foreach my $id (@{$dimension{$instance.'.criterias'}}) {   my $instance=&get_instance();
  #    $result.=$dimension{$instance.'.criteria.'.$id};   $result.='<table>';
  #}   foreach my $id (@{$dimension{$instance.'.criterias'}}) {
       $result.='<tr><td>'.
    $dimension{$instance.'.criteria.'.$id}.'</td></tr>';
    }
    $result.='</table>';
     }      }
     return $result;      return $result;
 }  }
Line 255  sub end_Dimension { Line 285  sub end_Dimension {
 sub start_IntroParagraph {  sub start_IntroParagraph {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  if ($tagstack->[-2] eq 'Dimension') {   if ($tagstack->[-2] eq 'Dimension' || $target eq 'webgrade') {
     &Apache::lonxml::startredirection();      &Apache::lonxml::startredirection();
  }   }
     }      }
Line 266  sub start_IntroParagraph { Line 296  sub start_IntroParagraph {
 sub end_IntroParagraph {  sub end_IntroParagraph {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  if ($tagstack->[-2] eq 'Dimension') {   if ($tagstack->[-2] eq 'Dimension' || $target eq 'webgrade') {
     $dimension{'intro'}=&Apache::lonxml::endredirection();      $dimension{'intro'}=&Apache::lonxml::endredirection();
  }   }
     }      }
Line 289  sub end_Instance { Line 319  sub end_Instance {
   
 sub start_InstanceText {  sub start_InstanceText {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  &Apache::lonxml::startredirection();   &Apache::lonxml::startredirection();
     }      }
     return '';      return '';
Line 298  sub start_InstanceText { Line 328  sub start_InstanceText {
 sub end_InstanceText {  sub end_InstanceText {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $instance_id=$Apache::bridgetask::instance[-1];      my $instance_id=$Apache::bridgetask::instance[-1];
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  $dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection();   $dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection();
     }      }
     return '';      return '';
Line 306  sub end_InstanceText { Line 336  sub end_InstanceText {
   
 sub start_Criteria {  sub start_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  &Apache::lonxml::startredirection();   &Apache::lonxml::startredirection();
     }      }
     return '';      return '';
Line 315  sub start_Criteria { Line 345  sub start_Criteria {
 sub end_Criteria {  sub end_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $instance_id=$Apache::bridgetask::instance[-1];      my $instance_id=$Apache::bridgetask::instance[-1];
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  my $criteria=&Apache::lonxml::endredirection();   my $criteria=&Apache::lonxml::endredirection();
  my $id=$Apache::lonxml::curdepth;   my $id=$Apache::lonxml::curdepth;
  $dimension{$instance_id.'.criteria.'.$id}=$criteria;   $dimension{$instance_id.'.criteria.'.$id}=$criteria;

Removed from v.1.12  
changed lines
  Added in v.1.13


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