Diff for /loncom/homework/bridgetask.pm between versions 1.30 and 1.31

version 1.30, 2005/05/24 19:33:28 version 1.31, 2005/05/24 22:06:39
Line 269  sub start_Task { Line 269  sub start_Task {
  if ($target eq 'webgrade') {   if ($target eq 'webgrade') {
     $result.=$head_tag_start.$body_tag_start.$form_tag_start;      $result.=$head_tag_start.$body_tag_start.$form_tag_start;
     $result.='<input type="hidden" name="webgrade" value="yes" />';      $result.='<input type="hidden" name="webgrade" value="yes" />';
       $result.='<br />Review'.&show_queue('reviewqueue');
     $result.='<br />Before'.&show_queue('gradingqueue');      $result.='<br />Before'.&show_queue('gradingqueue');
  }   }
  my $todo;   my $todo;
Line 351  sub end_Task { Line 352  sub end_Task {
     &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') {
  &add_to_queue('gradingqueue');   &add_to_queue('gradingqueue',$Apache::inputtags::slot_name);
     }      }
  }   }
  if ($target eq 'grade' && $env{'form.webgrade'}) {   if ($target eq 'grade' && $env{'form.webgrade'}) {
Line 386  sub end_Task { Line 387  sub end_Task {
  $env{'user.name'}.'@'.$env{'user.domain'};   $env{'user.name'}.'@'.$env{'user.domain'};
     if ($review) {      if ($review) {
  $Apache::lonhomework::results{"resource.$version.status"}='review';   $Apache::lonhomework::results{"resource.$version.status"}='review';
  &move_to_review_queue();   &move_between_queues('gradingqueue','reviewqueue');
     } elsif ($ungraded) {      } elsif ($ungraded) {
  $Apache::lonhomework::results{"resource.$version.status"}='ungraded';   $Apache::lonhomework::results{"resource.$version.status"}='ungraded';
  &check_queue_unlock('gradingqueue');   &check_queue_unlock('gradingqueue');
Line 401  sub end_Task { Line 402  sub end_Task {
  $Apache::lonhomework::results{"resource.$version.0.solved"}='correct_by_override';   $Apache::lonhomework::results{"resource.$version.0.solved"}='correct_by_override';
  $Apache::lonhomework::results{"resource.$version.0.award"}='EXACT_ANS';   $Apache::lonhomework::results{"resource.$version.0.award"}='EXACT_ANS';
  $Apache::lonhomework::results{"resource.$version.0.awarded"}='1';   $Apache::lonhomework::results{"resource.$version.0.awarded"}='1';
  &remove_from_queue();   &remove_from_queue('grading_queue');
     }      }
     $Apache::lonhomework::results{"resource.status"}=      $Apache::lonhomework::results{"resource.status"}=
  $Apache::lonhomework::results{"resource.$version.status"};   $Apache::lonhomework::results{"resource.$version.status"};
Line 435  sub end_Task { Line 436  sub end_Task {
     return $result;      return $result;
 }  }
   
 sub move_to_review_queue {  sub move_between_queues {
       my ($src_queue,$dest_queue)=@_;
     &Apache::lonxml::debug("Want to move");      my $cur_data=&get_queue_data($src_queue);
       if (!$cur_data) { return 'not_exist'; }
       my $result=&add_to_queue($dest_queue,$cur_data->[0]);
       if ($result ne 'ok') {
    return $result;
       }
       &check_queue_unlock($src_queue);
       return &remove_from_queue($src_queue);
 }  }
   
 sub check_queue_unlock {  sub check_queue_unlock {
Line 460  sub remove_from_queue { Line 468  sub remove_from_queue {
     my $cdom=$env{'course.'.$cid.'.domain'};      my $cdom=$env{'course.'.$cid.'.domain'};
     my $key="$symb\0queue\0$uname\@$udom";      my $key="$symb\0queue\0$uname\@$udom";
     my @keys=($key,"$key\0locked");      my @keys=($key,"$key\0locked");
     &Apache::lonnet::del($queue,\@keys,$cdom,$cnum);      return &Apache::lonnet::del($queue,\@keys,$cdom,$cnum);
 }  }
   
 sub setup_env_for_other_user {  sub setup_env_for_other_user {
Line 474  sub setup_env_for_other_user { Line 482  sub setup_env_for_other_user {
     &Apache::lonxml::initialize_rndseed($safeeval);      &Apache::lonxml::initialize_rndseed($safeeval);
 }  }
   
 sub add_to_queue {  sub get_queue_data {
     my ($queue)=@_;      my ($queue)=@_;
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};      my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};      my $cdom=$env{'course.'.$cid.'.domain'};
       my $todo="$symb\0queue\0$uname\@$udom";
       my ($key,$value)=&Apache::lonnet::get($queue,[$todo],$cdom,$cnum);
       if ($key eq $todo && ref($value)) {
    return $value;
       }
       return undef;
   }
   
   sub add_to_queue {
       my ($queue,$slot_name)=@_;
       my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
       my $cnum=$env{'course.'.$cid.'.num'};
       my $cdom=$env{'course.'.$cid.'.domain'};
     my %data;      my %data;
     $data{"$symb\0queue\0$uname\@$udom"}=[$Apache::inputtags::slot_name];      $data{"$symb\0queue\0$uname\@$udom"}=[$slot_name];
     &Apache::lonnet::put($queue,\%data,$cdom,$cnum);      return &Apache::lonnet::put($queue,\%data,$cdom,$cnum);
 }  }
   
 sub show_queue {  sub show_queue {
Line 492  sub show_queue { Line 513  sub show_queue {
     my $cdom=$env{'course.'.$cid.'.domain'};      my $cdom=$env{'course.'.$cid.'.domain'};
     my $regexp="^$symb\0";      my $regexp="^$symb\0";
     my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp);      my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp);
       my ($tmp)=%queue;
       if ($tmp=~/^error: 2 /) {
    return "\n<h3>Current Queue</h3><table border='1'><tr><td>Empty</td></tr></table>";
       }
     $result.="\n<h3>Current Queue</h3><table border='1'><tr><th>resource</th>".      $result.="\n<h3>Current Queue</h3><table border='1'><tr><th>resource</th>".
  "<th>user</th><th>type</th><th>data</th></tr>";   "<th>user</th><th>type</th><th>data</th></tr>";
     foreach my $key (sort(keys(%queue))) {      foreach my $key (sort(keys(%queue))) {
Line 613  sub get_from_queue { Line 638  sub get_from_queue {
  # no one in our section so look for any user that is ready for grading   # no one in our section so look for any user that is ready for grading
  if (!$todo) {   if (!$todo) {
     &Apache::lonnet::logthis("no sce");      &Apache::lonnet::logthis("no sce");
     $todo=&pick_from_queue_data($env{'request.course.sec'},\%queue,      $todo=&pick_from_queue_data($queue,$env{'request.course.sec'},
  $cdom,$cnum);   \%queue,$cdom,$cnum);
     &Apache::lonnet::logthis("no sce $todo");      &Apache::lonnet::logthis("no sce $todo");
  }   }
  # no user to grade    # no user to grade 

Removed from v.1.30  
changed lines
  Added in v.1.31


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