Diff for /loncom/homework/bridgetask.pm between versions 1.8 and 1.9

version 1.8, 2005/03/31 21:24:29 version 1.9, 2005/04/04 18:14:58
Line 37  use Apache::lonmenu; Line 37  use Apache::lonmenu;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonxml;  use Apache::lonxml;
 use Time::HiRes qw( gettimeofday tv_interval );  use Time::HiRes qw( gettimeofday tv_interval );
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Instance','InstanceText','Criteria','ClosingParagraph'));      &Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Instance','InstanceText','Criteria','ClosingParagraph'));
 }  }
   
   sub initialize_bridgetask {
       # id of current Dimension, 0 means that no dimension is current 
       # (inside <Task> only)
       $Apache::bridgetask::dimension='';
       # list of all Dimension ids seen
       @Apache::bridgetask::dimensionlist=();
       # list of all current Instance ids
       @Apache::bridgetask::instance=();
       # list of all Instance ids seen in this problem
       @Apache::bridgetask::instancelist=();
   }
   
 sub proctor_check_auth {  sub proctor_check_auth {
     my ($slot)=@_;      my ($slot)=@_;
     my $user=$ENV{'form.proctorname'};      my $user=$ENV{'form.proctorname'};
Line 63  sub proctor_check_auth { Line 76  sub proctor_check_auth {
   
 sub add_previous_version_button {  sub add_previous_version_button {
     my $result;      my $result;
     $result.=' Show a previously done version: <select name="previousversion">      $result.=&mt(' Show a previously done version: [_1]','<select name="previousversion">
 <option>Pick one</option>  <option>Pick one</option>
 </select>';  </select>');
     return $result;      return $result;
 }  }
   
Line 88  sub start_Task { Line 101  sub start_Task {
  $target eq 'tex') {   $target eq 'tex') {
  ($status,$accessmsg,$slot) =    ($status,$accessmsg,$slot) = 
     &Apache::lonhomework::check_task_access('0');      &Apache::lonhomework::check_task_access('0');
  push (@Apache::inputtags::status,$status);   push(@Apache::inputtags::status,$status);
  my $expression='$external::datestatus="'.$status.'";';   my $expression='$external::datestatus="'.$status.'";';
  $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";';   $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";';
  &Apache::run::run($expression,$safeeval);   &Apache::run::run($expression,$safeeval);
Line 164  sub end_Task { Line 177  sub end_Task {
     ($target eq 'answer') || ($target eq 'tex')      ($target eq 'answer') || ($target eq 'tex')
    ) {     ) {
     if ($target eq 'web') {      if ($target eq 'web') {
  $result.='<table border="1">'.   if ($status eq 'CAN_ANSWER') {
     &Apache::inputtags::file_selector("bridge","task","*",      $result.='<table border="1">'.
       'portfolioonly').   &Apache::inputtags::file_selector('0',"bridgetask","*",
       "</table>";    'portfolioonly').
     "</table>";
       $result.=&Apache::inputtags::gradestatus('0');
    }
  $result.=&Apache::lonxml::xmlend().'</html>';   $result.=&Apache::lonxml::xmlend().'</html>';
     }      }
  }   }
Line 201  sub end_ClosingParagraph { Line 217  sub end_ClosingParagraph {
 }  }
   
 my %dimension;  my %dimension;
 my $dim_id;  
 sub start_Dimension {  sub start_Dimension {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     undef(%dimension);      undef(%dimension);
     $dim_id=$Apache::lonxml::curdepth;      my $dim_id=$Apache::lonxml::curdepth;
       $Apache::bridgetask::dimension=$dim_id;
       push(@Apache::bridgetask::dimensionlist,$dim_id);
       undef(@Apache::bridgetask::instance);
     return '';      return '';
 }  }
   
Line 216  sub end_Dimension { Line 234  sub end_Dimension {
  #FIXME just grabbing the first one for now, need   #FIXME just grabbing the first one for now, need
  #to randomly pick one until all have been seen   #to randomly pick one until all have been seen
  #then start repicking   #then start repicking
  my $instance=$dimension{'instances'}->[0];   &Apache::response::pushrandomnumber();
  $result=$dimension{'intro'}.   my $num_instances=scalar(@{$dimension{'instances'}});
     $dimension{$instance.'.text'};   my $which=&Math::Random::random_uniform_integer(1,0,$num_instances-1);
    my $instance=$dimension{'instances'}->[$which];
    $result=$dimension{'intro'}.$dimension{$instance.'.text'};
  #FIXME: don't show the criteria yet   #FIXME: don't show the criteria yet
  #foreach my $id (@{$dimension{$instance.'.criterias'}}) {   #foreach my $id (@{$dimension{$instance.'.criterias'}}) {
  #    $result.=$dimension{$instance.'.criteria.'.$id};   #    $result.=$dimension{$instance.'.criteria.'.$id};
Line 249  sub end_IntroParagraph { Line 269  sub end_IntroParagraph {
     return $result;      return $result;
 }  }
   
 my $instance_id;  
 sub start_Instance {  sub start_Instance {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     push(@{$dimension{'instances'}},$Apache::lonxml::curdepth);      push(@{$dimension{'instances'}},$Apache::lonxml::curdepth);
     $instance_id=$Apache::lonxml::curdepth;      push(@Apache::bridgetask::instance,$Apache::lonxml::curdepth);
       push(@Apache::bridgetask::instancelist,$Apache::lonxml::curdepth);
     return '';      return '';
 }  }
   
Line 272  sub start_InstanceText { Line 292  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];
     if ($target eq 'web') {      if ($target eq 'web') {
  $dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection();   $dimension{$instance_id.'.text'}=&Apache::lonxml::endredirection();
     }      }
Line 288  sub start_Criteria { Line 309  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];
     if ($target eq 'web') {      if ($target eq 'web') {
  my $criteria=&Apache::lonxml::endredirection();   my $criteria=&Apache::lonxml::endredirection();
  my $id=$Apache::lonxml::curdepth;   my $id=$Apache::lonxml::curdepth;

Removed from v.1.8  
changed lines
  Added in v.1.9


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