--- loncom/homework/bridgetask.pm 2009/05/06 16:19:26 1.249
+++ loncom/homework/bridgetask.pm 2010/09/27 18:45:14 1.253
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: bridgetask.pm,v 1.249 2009/05/06 16:19:26 bisitz Exp $
+# $Id: bridgetask.pm,v 1.253 2010/09/27 18:45:14 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1085,14 +1085,21 @@ sub end_Task {
}
if ($status eq 'CAN_ANSWER' && !$previous &&
!$env{'form.donescreen'}) {
- $result.="\n".'
'.
+ my ($portheader,$porttext);
+ if ($Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"}) {
+ $portheader = &mt('Submit Additional Portfolio Files for Grading');
+ $porttext = &mt('Indicate which additional files from your portfolio are to be evaluated in grading this task.');
+ } else {
+ $portheader = &mt('Submit Portfolio Files for Grading');
+ $porttext = &mt('Indicate the files from your portfolio to be evaluated in grading this task.');
+ }
+ $result.="\n".''.&Apache::lonhtmlcommon::start_pick_box().
&Apache::inputtags::file_selector("$version.0",
"bridgetask","*",
'portfolioonly',
- '
-
'.&mt('Submit Portfolio Files for Grading').'
-'.&mt('Indicate the files from your portfolio to be evaluated in grading this task.').'
').
- "
";
+ ''.$portheader.'
'.
+ $porttext.'
').
+ &Apache::lonhtmlcommon::end_pick_box().'';
}
if (!$previous && $status ne 'SHOW_ANSWER' &&
&show_task($status,$previous)) {
@@ -1191,8 +1198,11 @@ DONEBUTTON
if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous
&& $status eq 'CAN_ANSWER') {
my $award='SUBMITTED';
+ my $uploadedflag=0;
+ my $totalsize=0;
+ my @deletions = &Apache::loncommon::get_env_multiple('form.HWFILE'.$version.'_0_bridgetask_delete');
&Apache::essayresponse::file_submission("$version.0",'bridgetask',
- 'portfiles',\$award);
+ \$award,\$uploadedflag,\$totalsize,\@deletions);
if ($award eq 'SUBMITTED' &&
$Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}) {
$Apache::lonhomework::results{"resource.0.tries"}=
@@ -1205,7 +1215,9 @@ DONEBUTTON
$Apache::lonhomework::results{"resource.0.submission"}=
$Apache::lonhomework::results{"resource.$version.0.submission"}='';
} else {
- delete($Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"});
+ unless($uploadedflag) {
+ delete($Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"});
+ }
$award = '';
}
&Apache::lonhomework::showhash(%Apache::lonhomework::results);
@@ -1308,36 +1320,53 @@ DONEBUTTON
$Apache::lonhomework::results{"resource.$version.0.solved"};
}
&minimize_storage();
- &Apache::structuretags::finalize_storage();
-
- # 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');
+ my $canstore;
+ if ($env{'form.gradingkey'}) {
+ my ($symb,$courseid,$domain,$name) =
+ &Apache::lonnet::whichuser();
+ my $todo=&unescape($env{'form.gradingkey'});
+ my ($keysymb,$uname,$udom)=&decode_queue_key($todo);
+ if ($symb eq $keysymb) {
+ if (($domain eq $udom) && ($name eq $uname)) {
+ $canstore = 1;
+ }
+ }
+ }
+ if ($canstore) {
+ &Apache::structuretags::finalize_storage();
+ # 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'});
+ $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.').'
';
+ }
+ }
if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {
# instance generation occurred and hasn't yet been stored
&Apache::structuretags::finalize_storage();
@@ -1395,6 +1424,13 @@ DONEBUTTON
}
&Apache::structuretags::reset_problem_globals('Task');
undef($Apache::lonhomework::parsing_a_task);
+ if ( ($target eq 'grade' && $env{'form.webgrade'}) ||
+ $target eq 'webgrade') {
+ delete($env{'form.grade_symb'});
+ delete($env{'form.grade_domain'});
+ delete($env{'form.grade_username'});
+ delete($env{'form.grade_courseid'});
+ }
return $result;
}
@@ -3157,7 +3193,7 @@ sub proctor_validation_screen {
'vali' => 'Validate',
'stui' => "Student who should be logged in is:",
'name' => "Name:",
- 'sid' => "Student/Employee ID:",
+ 'sid' => "Student/Employee ID",
'unam' => "Username:",
);
my $result= (<