--- loncom/homework/bridgetask.pm 2008/12/05 10:23:50 1.243 +++ loncom/homework/bridgetask.pm 2009/05/06 16:19:26 1.249 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.243 2008/12/05 10:23:50 bisitz Exp $ +# $Id: bridgetask.pm,v 1.249 2009/05/06 16:19:26 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -82,7 +82,10 @@ sub proctor_check_auth { } } if ($authenticated) { - &check_in($type,$user,$domain,$slot_name); + my $check = &check_in($type,$user,$domain,$slot_name); + if ($check =~ /^error:/) { + return 0; + } return 1; } } @@ -94,7 +97,10 @@ sub check_in { my ($type,$user,$domain,$slot_name) = @_; my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); if ( $useslots eq 'map_map') { - &check_in_sequence($user,$domain,$slot_name); + my $result = &check_in_sequence($user,$domain,$slot_name); + if ($result =~ /^error: /) { + return $result; + } } else { &create_new_version($type,$user,$domain,$slot_name); &Apache::structuretags::finalize_storage(); @@ -105,6 +111,9 @@ sub check_in { sub check_in_sequence { my ($user,$domain,$slot_name) = @_; my $navmap = Apache::lonnavmaps::navmap->new(); + if (!defined($navmap)) { + return 'error: '; + } my ($symb) = &Apache::lonnet::whichuser(); my ($map) = &Apache::lonnet::decode_symb($symb); my @resources = @@ -306,7 +315,7 @@ sub add_request_another_attempt_button { my ($slot_name,$slot)=&Apache::slotrequest::check_for_reservation($symb); my $action='get_reservation'; if ($slot_name) { - $text=&mt('Change reservation.'); + $text=&mt('Change reservation'); $action='change_reservation'; my $description=&Apache::slotrequest::get_description($slot_name, $slot); @@ -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 { @@ -2983,25 +2996,25 @@ sub layout_webgrade_Criteria { my $link=&link($id); my $version = &get_version(); my $status = &get_criteria('status',$version,$dim,$id); - my %lt = ( 'ungraded' => 'Ungraded', - 'fail' => 'Fail', - 'pass' => 'Pass', - 'review' => 'Review', - 'comment' => 'Additional Comment for Student', - ); - %lt = &Apache::lonlocal::texthash(%lt); + my %lt = &Apache::lonlocal::texthash( + 'ungraded' => 'Ungraded', + 'fail' => 'Fail', + 'pass' => 'Pass', + 'review' => 'Review', + 'comment' => 'Additional Comment for Student', + ); my $comment = &get_criteria('comment',$version,$dim,$id); $comment = &HTML::Entities::encode($comment,'<>"&'); my %checked; foreach my $which ('ungraded','fail','pass','review') { - if ($status eq $which) { $checked{$which} = 'checked="checked"'; } + if ($status eq $which) { $checked{$which} = ' checked="checked"'; } } - if (!%checked) { $checked{'ungraded'} = 'checked="checked"'; } + if (!%checked) { $checked{'ungraded'} = ' checked="checked"'; } my $buttons; foreach my $which ('ungraded','fail','pass','review') { $buttons .= < - + $lt{$which} END_BUTTON @@ -3144,7 +3157,7 @@ sub proctor_validation_screen { 'vali' => 'Validate', 'stui' => "Student who should be logged in is:", 'name' => "Name:", - 'sid' => "Student ID:", + 'sid' => "Student/Employee ID:", 'unam' => "Username:", ); my $result= (<