'.
&mt("Requested user has never accessed the task.").
@@ -1004,6 +1009,8 @@ sub get_key_todo {
return (undef,'stop');
} elsif ($env{'form.cancel'}) {
return (undef,'cancel');
+ } elsif ($env{'form.terminated'}) {
+ return (undef, 'terminated');
} elsif ($env{'form.next'}) {
return (undef,'select_user');
}
@@ -1049,13 +1056,17 @@ sub get_key_todo {
if ($env{'form.queuemode'} ne 'selected') {
# don't get something new from the queue if they hit the stop button
- if (!(($env{'form.cancel'} || $env{'form.stop'})
+ if (!(($env{'form.cancel'} || $env{'form.stop'} || $env{'form.terminated'})
&& $target eq 'webgrade')
&& !$env{'form.gradingaction'}) {
&Apache::lonxml::debug("Getting anew $queue");
return (&get_from_queue($queue));
} else {
- return (undef,'stop');
+ if ($env{'form.terminated'}) {
+ return (undef,'terminated');
+ } else {
+ return (undef,'stop');
+ }
}
}
return (undef,undef)
@@ -1320,9 +1331,9 @@ DONEBUTTON
$Apache::lonhomework::results{"resource.$version.0.solved"};
}
&minimize_storage();
- my $canstore;
+ my ($canstore,$domain,$name);
if ($env{'form.gradingkey'}) {
- my ($symb,$courseid,$domain,$name) =
+ (my $symb,my $courseid,$domain,$name) =
&Apache::lonnet::whichuser();
my $todo=&unescape($env{'form.gradingkey'});
my ($keysymb,$uname,$udom)=&decode_queue_key($todo);
@@ -1334,39 +1345,38 @@ DONEBUTTON
}
if ($canstore) {
&Apache::structuretags::finalize_storage();
- } else {
- $result .= '
'.
- &mt('Information extracted from the current gradingkey was for a different BT or user from those for which grading data are to be stored.').' '.&mt('No grading changes stored.').'
';
- }
-
- # data stored, now handle queue
- if ($review) {
- if ($env{'form.queue'} eq 'reviewqueue') {
- &check_queue_unlock($env{'form.queue'});
- &Apache::lonxml::debug(" still needs review not changing status.");
- } else {
- if ($env{'form.queue'} ne 'none') {
- &move_between_queues($env{'form.queue'},'reviewqueue');
+ # data stored, now handle queue
+ if ($review) {
+ if ($env{'form.queue'} eq 'reviewqueue') {
+ &check_queue_unlock($env{'form.queue'});
+ &Apache::lonxml::debug(" still needs review not changing status.");
} else {
- &add_to_queue('reviewqueue',\%queue_data);
+ if ($env{'form.queue'} ne 'none') {
+ &move_between_queues($env{'form.queue'},'reviewqueue');
+ } else {
+ &add_to_queue('reviewqueue',\%queue_data);
+ }
}
- }
- } elsif ($ungraded) {
- if ($env{'form.queue'} eq 'reviewqueue') {
- &Apache::lonxml::debug("moving back.");
- &move_between_queues($env{'form.queue'},
- 'gradingqueue');
- } elsif ($env{'form.queue'} eq 'none' ) {
- &add_to_queue('gradingqueue',\%queue_data);
- } else {
- &check_queue_unlock($env{'form.queue'});
- }
- } elsif ($mandatory_failed) {
- &remove_from_queue($env{'form.queue'});
- } else {
- &remove_from_queue($env{'form.queue'});
- }
- }
+ } elsif ($ungraded) {
+ if ($env{'form.queue'} eq 'reviewqueue') {
+ &Apache::lonxml::debug("moving back.");
+ &move_between_queues($env{'form.queue'},
+ 'gradingqueue');
+ } elsif ($env{'form.queue'} eq 'none' ) {
+ &add_to_queue('gradingqueue',\%queue_data);
+ } else {
+ &check_queue_unlock($env{'form.queue'});
+ }
+ } elsif ($mandatory_failed) {
+ &remove_from_queue($env{'form.queue'});
+ } else {
+ &remove_from_queue($env{'form.queue'});
+ }
+ } else {
+ &check_queue_unlock($env{'form.queue'});
+ $env{'form.terminated'} = $name.':'.$domain;
+ }
+ }
if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {
# instance generation occurred and hasn't yet been stored
&Apache::structuretags::finalize_storage();