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

version 1.7, 2005/03/31 16:05:13 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 61  sub proctor_check_auth { Line 74  sub proctor_check_auth {
     return 0;      return 0;
 }  }
   
   sub add_previous_version_button {
       my $result;
       $result.=&mt(' Show a previously done version: [_1]','<select name="previousversion">
   <option>Pick one</option>
   </select>');
       return $result;
   }
   
 sub start_Task {  sub start_Task {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
Line 73  sub start_Task { Line 94  sub start_Task {
     my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=      my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
  &Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);   &Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
   
       if ($target eq 'web') {
    $body_tag_start.=&add_previous_version_button();
       }
     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') {
  ($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 153  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') {
    if ($status eq 'CAN_ANSWER') {
       $result.='<table border="1">'.
    &Apache::inputtags::file_selector('0',"bridgetask","*",
     'portfolioonly').
     "</table>";
       $result.=&Apache::inputtags::gradestatus('0');
    }
  $result.=&Apache::lonxml::xmlend().'</html>';   $result.=&Apache::lonxml::xmlend().'</html>';
     }      }
  }   }
Line 186  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 201  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 234  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 257  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 273  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.7  
changed lines
  Added in v.1.9


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