'."\n";
}
@@ -493,13 +502,13 @@ sub webgrade_standard_info {
my $file_list = &file_list($Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"});
- my %lt=('done' => 'Next Item',
- 'stop' => 'Quit Grading',
- 'fail' => 'Fail Rest',
- 'cancel' => 'Cancel',
- 'submit' => 'Submit Grades',
- );
- %lt=&Apache::lonlocal::texthash(%lt);
+ my %lt = &Apache::lonlocal::texthash(
+ 'done' => 'Next Item',
+ 'stop' => 'Quit Grading',
+ 'fail' => 'Fail Rest',
+ 'cancel' => 'Cancel',
+ 'submit' => 'Submit Grades',
+ );
my $result=<
@@ -655,7 +664,11 @@ sub start_Task {
if ($status eq 'CAN_ANSWER' && $version eq '') {
# CAN_ANSWER mode, and no current version, unproctored access
# thus self-checkedin
- &check_in('Task',undef,undef,$slot_name);
+ my $check = &check_in('Task',undef,undef,$slot_name);
+ if ($check =~ /^error: /) {
+ my $symb=&Apache::lonnet::symbread();
+ &Apache::lonnet::logthis("Error during self-checkin of version $version of Task (symb: $symb) using slot: $slot_name");
+ }
&add_to_queue('gradingqueue',{'type' => 'Task',
'time' => time,
'slot' => $slot_name});
@@ -685,7 +698,7 @@ sub start_Task {
$msg.='
'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'
';
} elsif ($status eq 'NOT_IN_A_SLOT') {
$msg.='
'.&mt('You are not currently signed up to work at this time and/or place.').'
';
- $msg.=&add_request_another_attempt_button("Sign up for time to work.");
+ $msg.=&add_request_another_attempt_button("Sign up for time to work");
} elsif ($status eq 'NEEDS_CHECKIN') {
$msg.='
'.&mt('You need the Proctor to validate you.').
'
'.&proctor_validation_screen($slot);
@@ -701,7 +714,7 @@ sub start_Task {
}
$result.=$msg.' ';
} elsif ($target eq 'tex') {
- $result.='\begin{document}\noindent \vskip 1 mm \begin{minipage}{\textwidth}\vskip 0 mm';
+ $result.='\noindent \vskip 1 mm \begin{minipage}{\textwidth}\vskip 0 mm';
if ($status eq 'UNAVAILABLE') {
$result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm ';
} else {
@@ -1072,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".'
'.&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)) {
@@ -1178,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"}=
@@ -1192,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);
@@ -1295,8 +1320,25 @@ DONEBUTTON
$Apache::lonhomework::results{"resource.$version.0.solved"};
}
&minimize_storage();
- &Apache::structuretags::finalize_storage();
-
+ 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();
+ } 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') {
@@ -1382,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;
}
@@ -2081,6 +2130,7 @@ sub select_user {
$seclist.='';
}
+ my $buttontext=&mt('Regrade');
$result.=&Apache::loncommon::start_data_table_row();
$result.=<
@@ -2089,7 +2139,7 @@ sub select_user {
-
+
$seclist