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 |