--- loncom/homework/bridgetask.pm 2010/09/27 18:45:14 1.253 +++ loncom/homework/bridgetask.pm 2010/10/12 16:07:43 1.255 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.253 2010/09/27 18:45:14 raeburn Exp $ +# $Id: bridgetask.pm,v 1.255 2010/10/12 16:07:43 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -545,23 +545,35 @@ sub done_screen { my $title=&Apache::lonnet::gettitle($env{'request.uri'}); my @files=split(',',$Apache::lonhomework::history{'resource.'.$version.'.0.bridgetask.portfiles'}); my (undef,undef,$domain,$user)= &Apache::lonnet::whichuser(); - my $files = '<ul>'; - my $msg; - foreach my $file (@files) { - my $url="/uploaded/$domain/$user/portfolio$file"; - if (! &Apache::lonnet::stat_file($url)) { - $file = '<span class="LC_error">' - .&mt('[_1]Nonexistent file:[_2]' - ,'<span class="LC_error"> ' - ,'</span> <span class="LC_filename">'.$file.'</span>'); - $msg .= "<p>".&mt('Submitted non-existent file [_1]',$file)."</p>\n"; - } else { - $file = '<span class="LC_filename">'.$file.'</span>'; - $msg .= "<p>".&mt('Submitted file [_1]',$file)."</p>\n"; - } - $files .= '<li>'.$file.'</li>'; + my ($msg,$files,$shown); + if (@files > 0) { + $files = '<ul>'; + foreach my $file (@files) { + my $url="/uploaded/$domain/$user/portfolio$file"; + if (! &Apache::lonnet::stat_file($url)) { + $file = '<span class="LC_error">' + .&mt('[_1]Nonexistent file:[_2]' + ,'<span class="LC_error"> ' + ,'</span> <span class="LC_filename">'.$file.'</span>'); + $msg .= "<p>".&mt('Submitted non-existent file [_1]',$file)."</p>\n"; + } else { + $file = '<span class="LC_filename">'.$file.'</span>'; + $msg .= "<p>".&mt('Submitted file [_1]',$file)."</p>\n"; + } + $files .= '<li>'.$file.'</li>'; + } + $files.='</ul>'; + $shown = '<p>'.&mt('Files submitted: [_1]',$files).'</p>' + .'<p>'.&mt('You are now done with this Bridge Task').'</p>' + .'<hr />' + .'<p><a href="/adm/logout">'.&mt('Logout').'</a></p>' + .'<p><a href="/adm/roles">'.&mt('Change to a different course').'</a></p>'; + } else { + $msg = &mt("Submission status: no files currently submitted, when 'Done' was indicated."); + $shown = '<p class="LC_error">'. + &mt('You did not submit any files. Please try again.').'</span>'. + '</p><p><a href="javascript:history.go(-1);">'.&mt('Back to Bridge Task').'</a></p><hr />'; } - $files.='</ul>'; my $subject = &mt('Submission message for [_1]',$title); my ($message_status,$comment_status); my $setting = $env{'course.'.$env{'request.course.id'}.'.task_messages'}; @@ -581,15 +593,11 @@ sub done_screen { $comment_status = '<p>'.&mt('Message sent to instructor: [_1]', $comment_status).' </p>'; } + return "<h2>$title</h2>" - .'<p>'.&mt('Files submitted: [_1]',$files).'</p>' - .'<p>'.&mt('You are now done with this Bridge Task').'</p>' - .'<hr />' - .'<p><a href="/adm/logout">'.&mt('Logout').'</a></p>' -.'<p><a href="/adm/roles">'.&mt('Change to a different course').'</a></p>' -.$message_status -.$comment_status; - + .$shown + .$message_status + .$comment_status; } sub start_Task { @@ -784,6 +792,11 @@ sub start_Task { $result.='<b>'.&mt("Stopped grading.").'</b>'.$back; } elsif ($status_code eq 'cancel') { $result.='<b>'.&mt("Cancelled grading.").'</b>'.$back; + } elsif ($status_code eq 'terminated') { + $result.= '<b>'.&mt('Terminated grading').'</b><br />'. + '<span class="LC_error">'. + &mt('Grading for [_1] has not been saved because of a grading key mismatch.', + '<tt>'.$env{'form.terminated'}.'</tt>').'</span><br />'.$back; } elsif ($status_code eq 'never_versioned') { $result.='<b>'. &mt("Requested user has never accessed the task."). @@ -1004,6 +1017,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 +1064,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 +1339,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); @@ -1363,8 +1382,7 @@ DONEBUTTON } } else { &check_queue_unlock($env{'form.queue'}); - $result .= '<br /><div class="LC_error">'. - &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.').'</div><br />'; + $env{'form.terminated'} = $name.':'.$domain; } } if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {