Diff for /loncom/homework/bridgetask.pm between versions 1.176 and 1.182

version 1.176, 2006/06/20 03:56:30 version 1.182, 2006/09/28 18:59:11
Line 50  my %dimension; Line 50  my %dimension;
 sub initialize_bridgetask {  sub initialize_bridgetask {
     # id of current Dimension, 0 means that no dimension is current       # id of current Dimension, 0 means that no dimension is current 
     # (inside <Task> only)      # (inside <Task> only)
     %Apache::bridgetask::dimension=();      @Apache::bridgetask::dimension=();
     # list of all Dimension ids seen      # list of all Dimension ids seen
     %Apache::bridgetask::top_dimensionlist=();      %Apache::bridgetask::top_dimensionlist=();
     # list of all current Instance ids      # list of all current Instance ids
Line 144  sub create_new_version { Line 144  sub create_new_version {
  #setup new version and who did it   #setup new version and who did it
         $Apache::lonhomework::results{'resource.0.version'}=$version;          $Apache::lonhomework::results{'resource.0.version'}=$version;
  $id = "$version.0";   $id = "$version.0";
  if (!defined($user) || defined($domain)) {   if (!defined($user) || !defined($domain)) {
     $user = $env{'user.name'};      $user = $env{'user.name'};
     $domain = $env{'user.domain'};      $domain = $env{'user.domain'};
  }   }
Line 152  sub create_new_version { Line 152  sub create_new_version {
     } elsif ($type eq 'problem') {      } elsif ($type eq 'problem') {
  &Apache::lonxml::debug("authed $slot_name");   &Apache::lonxml::debug("authed $slot_name");
     }      }
       if (!defined($user) || !defined($domain)) {
     if (defined($user) && defined($domain)) {   $user = $env{'user.name'};
  $Apache::lonhomework::results{"resource.$id.checkedin"}=   $domain = $env{'user.domain'};
     $user.':'.$domain;  
     }      }
   
       $Apache::lonhomework::results{"resource.$id.checkedin"}=
    $user.':'.$domain;
   
     if (defined($slot_name)) {      if (defined($slot_name)) {
  $Apache::lonhomework::results{"resource.$id.checkedin.slot"}=   $Apache::lonhomework::results{"resource.$id.checkedin.slot"}=
     $slot_name;      $slot_name;
Line 372  sub nested_parse { Line 375  sub nested_parse {
     @Apache::scripttag::parser_env = @old_env;      @Apache::scripttag::parser_env = @old_env;
     if ($args->{'delayed_dim_results'}) {      if ($args->{'delayed_dim_results'}) {
  my $dim = &get_dim_id();   my $dim = &get_dim_id();
    &Apache::lonxml::debug(" tossing out $result ");
    &Apache::lonxml::debug(" usining out $dim 's  ". $dimension{$dim}{'result'});
  return $dimension{$dim}{'result'};   return $dimension{$dim}{'result'};
     }      }
     return $result;      return $result;
Line 389  sub submission_time_stamp { Line 394  sub submission_time_stamp {
     for (my $v=$Apache::lonhomework::history{'version'};$v>0;$v--) {      for (my $v=$Apache::lonhomework::history{'version'};$v>0;$v--) {
  if (defined($Apache::lonhomework::history{$v.':resource.'.$version.'.0.bridgetask.portfiles'})) {   if (defined($Apache::lonhomework::history{$v.':resource.'.$version.'.0.bridgetask.portfiles'})) {
     $submissiontime=$Apache::lonhomework::history{$v.':timestamp'};      $submissiontime=$Apache::lonhomework::history{$v.':timestamp'};
       last;
  }   }
     }      }
     my $result;      my $result;
Line 399  sub submission_time_stamp { Line 405  sub submission_time_stamp {
  my ($color,$when)=('#FF6666','after');   my ($color,$when)=('#FF6666','after');
  if ($diff > 0) { ($color,$when)=('#336600','before'); }   if ($diff > 0) { ($color,$when)=('#336600','before'); }
  my $info;   my $info;
    $diff = abs($diff);
  if ($diff%60) { $info=($diff%60).' seconds'; }   if ($diff%60) { $info=($diff%60).' seconds'; }
  $diff=int($diff/60);   $diff=int($diff/60);
  if ($diff%60) { $info=($diff%60).' minutes '.$info; }   if ($diff%60) { $info=($diff%60).' minutes '.$info; }
  $diff=int($diff/60);   $diff=int($diff/60);
  if ($diff) {    $info=$diff.' hours '.$info; }   if ($diff) {    $info=$diff.' hours '.$info; }
  $result='<p><font color="'.$color.'">'.   $result='<p><font color="'.$color.'">'.
     &mt('Student submitted [_1] [_2] the deadline.       &mt('Student submitted [_1] [_2] the deadline. '.
                  (Submission was at [_3], end of period was [_4].)',   '(Submission was at [_3], end of period was [_4].)',
  $info,$when,scalar(localtime($submissiontime)),   $info,$when,
  scalar(localtime($slot{'endtime'}))).   &Apache::lonlocal::locallocaltime($submissiontime),
    &Apache::lonlocal::locallocaltime($slot{'endtime'})).
  '</font></p>';   '</font></p>';
     }      }
     return $result;      return $result;
Line 530  sub start_Task { Line 538  sub start_Task {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   
     my ($status,$accessmsg,$slot);      my ($status,$accessmsg,$slot);
       &Apache::structuretags::init_problem_globals('Task');
     if ($target ne 'webgrade') {      if ($target ne 'webgrade') {
  &Apache::structuretags::init_problem_globals('Task');  
  &Apache::structuretags::initialize_storage();   &Apache::structuretags::initialize_storage();
  &Apache::lonhomework::showhash(%Apache::lonhomework::history);   &Apache::lonhomework::showhash(%Apache::lonhomework::history);
  if ($env{'request.state'} eq 'construct') {   if ($env{'request.state'} eq 'construct') {
Line 594  sub start_Task { Line 602  sub start_Task {
  ($status,$accessmsg,my $slot_name,$slot) =    ($status,$accessmsg,my $slot_name,$slot) = 
     &Apache::lonhomework::check_slot_access('0','Task');      &Apache::lonhomework::check_slot_access('0','Task');
  if ($status eq 'CAN_ANSWER' && $version eq '') {   if ($status eq 'CAN_ANSWER' && $version eq '') {
     # CAN_ANSWR mode, and no current version, unproctored access      # CAN_ANSWER mode, and no current version, unproctored access
     # thus self-checkedin      # thus self-checkedin
     &check_in('Task',undef,undef,$slot_name)      &check_in('Task',undef,undef,$slot_name);
     &add_to_queue('gradingqueue',{'type' => 'Task',      &add_to_queue('gradingqueue',{'type' => 'Task',
   'time' => time,    'time' => time,
   'slot' => $slot_name});    'slot' => $slot_name});
Line 1058  DONEBUTTON Line 1066  DONEBUTTON
     &Apache::loncommon::end_page({'discussion' => 1});      &Apache::loncommon::end_page({'discussion' => 1});
     }      }
  }   }
   
    my $useslots = &Apache::lonnet::EXT("resource.0.useslots");
    my %queue_data = ('type' => 'Task',
     'time' => time,);
    if (defined($Apache::inputtags::slot_name)) {
       $queue_data{'slot'} = $Apache::inputtags::slot_name;
    } elsif (defined($Apache::lonhomework::history{"resource.$version.0.checkedin.slot"})) {
       $queue_data{'slot'} = $Apache::lonhomework::history{"resource.$version.0.checkedin.slot"};
    }
   
   
  if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous) {   if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous) {
     my $award='SUBMITTED';      my $award='SUBMITTED';
     &Apache::essayresponse::file_submission("$version.0",'bridgetask',      &Apache::essayresponse::file_submission("$version.0",'bridgetask',
Line 1080  DONEBUTTON Line 1099  DONEBUTTON
     &Apache::lonhomework::showhash(%Apache::lonhomework::results);      &Apache::lonhomework::showhash(%Apache::lonhomework::results);
     &Apache::structuretags::finalize_storage();      &Apache::structuretags::finalize_storage();
     if ($award eq 'SUBMITTED') {      if ($award eq 'SUBMITTED') {
  my $useslots = &Apache::lonnet::EXT("resource.0.useslots");   &add_to_queue('gradingqueue',\%queue_data);
  if ($useslots =~ /^\s*no\s*$/i) {  
     &add_to_queue('gradingqueue',  
   {'type' => 'Task',  
    'time' => time});  
  } elsif (defined($Apache::inputtags::slot_name)) {  
     &add_to_queue('gradingqueue',  
   {'type' => 'Task',  
    'time' => time,  
    'slot' => $Apache::inputtags::slot_name});  
  }  
     }      }
  } elsif ($Apache::lonhomework::results{'INTERNAL_store'}) {   } elsif ($Apache::lonhomework::results{'INTERNAL_store'}) {
     &Apache::structuretags::finalize_storage();      &Apache::structuretags::finalize_storage();
Line 1138  DONEBUTTON Line 1147  DONEBUTTON
     &check_queue_unlock($env{'form.queue'});      &check_queue_unlock($env{'form.queue'});
     &Apache::lonxml::debug(" still needs review not changing status.");      &Apache::lonxml::debug(" still needs review not changing status.");
  } else {   } else {
     &move_between_queues($env{'form.queue'},'reviewqueue');      if ($env{'form.queue'} ne 'none') {
    &move_between_queues($env{'form.queue'},'reviewqueue');
       } else {
    &add_to_queue('reviewqueue',\%queue_data);
       }
  }   }
     } elsif ($ungraded) {      } elsif ($ungraded) {
  $Apache::lonhomework::results{"resource.$version.0.status"}='ungraded';   $Apache::lonhomework::results{"resource.$version.0.status"}='ungraded';
  if ($env{'form.queue'} eq 'reviewqueue' ||   if ($env{'form.queue'} eq 'reviewqueue') {
     $env{'form.queue'} eq 'none' ) {  
     &Apache::lonxml::debug("moving back.");      &Apache::lonxml::debug("moving back.");
     &move_between_queues($env{'form.queue'},'gradingqueue');      &move_between_queues($env{'form.queue'},
    'gradingqueue');
    } elsif ($env{'form.queue'} eq 'none' ) {
       &add_to_queue('gradingqueue',\%queue_data);
  } else {   } else {
     &check_queue_unlock($env{'form.queue'});      &check_queue_unlock($env{'form.queue'});
  }   }
Line 1220  DONEBUTTON Line 1235  DONEBUTTON
       'Partial Credit Factor');        'Partial Credit Factor');
  $result.=&Apache::response::meta_stores_write('status','string',   $result.=&Apache::response::meta_stores_write('status','string',
       'Bridge Task Status');        'Bridge Task Status');
       } elsif ($target eq 'edit') {
    &Apache::structuretags::reset_problem_globals('Task');
    undef($Apache::lonhomework::parsing_a_task);
    return ('','no');
     }      }
       &Apache::structuretags::reset_problem_globals('Task');
     undef($Apache::lonhomework::parsing_a_task);      undef($Apache::lonhomework::parsing_a_task);
     return $result;      return $result;
 }  }
Line 2220  sub get_criteria { Line 2240  sub get_criteria {
     &nested_parse(\$dimension{$dim}{$instance.'.text'},[@_]);      &nested_parse(\$dimension{$dim}{$instance.'.text'},[@_]);
     $result.=      $result.=
  &nested_parse(\$dimension{$dim}{'questiontext'},[@_],   &nested_parse(\$dimension{$dim}{'questiontext'},[@_],
       {'set_dim_id'        => undef,        {'set_dim_id'          => undef,
        'delay_dim_results' => 1});         'delayed_dim_results' => 1});
     foreach my $id (@{$dimension{$dim}{$instance.'.criterias'}},      foreach my $id (@{$dimension{$dim}{$instance.'.criterias'}},
     @{$dimension{$dim}{'criterias'}} ) {      @{$dimension{$dim}{'criterias'}} ) {
  my $type = $dimension{$dim}{'criteria.'.$id.'.type'};   my $type = $dimension{$dim}{'criteria.'.$id.'.type'};
Line 2258  sub get_criteria { Line 2278  sub get_criteria {
  $result.=&grading_history($version,$dim,$id);   $result.=&grading_history($version,$dim,$id);
  $last_link=$link;   $last_link=$link;
     }      }
     if (&delay_result()) {      if (&nest()) {
  &Apache::lonxml::debug(" for $dim stashing results into ".$dimension{$dim}{'nested'});   &Apache::lonxml::debug(" for $dim stashing results into ".$dimension{$dim}{'nested'});
  $dimension{$dimension{$dim}{'nested'}}{'result'}.=$result;   $dimension{$dimension{$dim}{'nested'}}{'result'}.=$result;
  undef($result);   undef($result);

Removed from v.1.176  
changed lines
  Added in v.1.182


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