--- loncom/homework/bridgetask.pm 2007/08/09 00:59:16 1.237 +++ loncom/homework/bridgetask.pm 2010/08/23 03:24:01 1.252 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.237 2007/08/09 00:59:16 albertel Exp $ +# $Id: bridgetask.pm,v 1.252 2010/08/23 03:24:01 raeburn 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 = @@ -252,10 +261,10 @@ sub add_grading_button { my ($entries,$ready,$locks)=&get_queue_counts('gradingqueue'); $result.="\n\t".'
Specify a section: | '. + $result.="\n\t\t\t".''.&mt('Specify a section:').' | '. "\n\t\t\t".''.$sec_select."\n\t\t\t".' | '; } else { - $result.="\n\t\t\t".'Grading section: | '. + $result.="\n\t\t\t".''.&mt('Grading section:').' | '. "\n\t\t\t".''.$env{'request.course.sec'}."\n\t\t\t".' | '; } $result.="\n\t\t\t".''.' Will be next available: $description
-STUFF
+ $result.=' ' + .&mt('Will be next available:') + .' '.$description + .' '; } if ($env{'request.enc'}) { $symb=&Apache::lonenc::encrypted($symb); } @@ -322,7 +332,7 @@ STUFF ''."\n\t\t". ''."\n\t\t". ''."\n\t". + $text.'" />'."\n\t". ''."\n"; return $result; } @@ -472,7 +482,7 @@ sub file_list { my $file=$file_url.$partial_file; $file=~s|/+|/|g; &Apache::lonnet::allowuploaded('/adm/bridgetask',$file); - $file_list.='Submitted non-existant file $file \n"; + $file = '' + .&mt('[_1]Nonexistent file:[_2]' + ,' ' + ,' '.$file.''); + $msg .= "".&mt('Submitted non-existent file [_1]',$file)." \n"; } else { $file = ''.$file.''; - $msg .= "Submitted file $file \n"; + $msg .= "".&mt('Submitted file [_1]',$file)." \n"; } $files .= ''.&mt('Message sent to instructor: [_1]', $comment_status).' '; } - return <Files submitted: $files -You are now done with this Bridge Task -- - -$message_status -$comment_status -DONESCREEN + return " $title" + .''.&mt('Files submitted: [_1]',$files).' ' + .''.&mt('You are now done with this Bridge Task').' ' + .'' + .'' +.' '.&mt('Change to a different course').' ' +.$message_status +.$comment_status; } @@ -630,7 +640,7 @@ sub start_Task { my $target_id = &Apache::lonstathelpers::make_target_id({symb => $symb, part => '0'}); - if (§ion_restricted()) { + if (!§ion_restricted()) { $result.=' DONEBUTTON } @@ -1126,13 +1148,15 @@ DONEBUTTON "\n"; if ($bt_status eq 'pass') { - $status.='You passed the '.$title.' given on '. - $start_time.''; + $status.='' + .&mt('You passed the [_1] given on [_2].',$title,$start_time) + .''; $status.=$question_status; } if ($bt_status eq 'fail') { - $status.='You did not pass the '.$title.' given on '. - $start_time.''; + $status.='' + .&mt('You did not pass the [_1] given on [_2].',$title,$start_time) + .''; $status.=$question_status; if (!$previous) { $status.=&add_request_another_attempt_button(); @@ -1174,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"}= @@ -1188,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); @@ -1291,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') { @@ -1322,7 +1368,7 @@ DONEBUTTON } } if (exists($Apache::lonhomework::results{'INTERNAL_store'})) { - # instance generation occured and hasn't yet been stored + # instance generation occurred and hasn't yet been stored &Apache::structuretags::finalize_storage(); } } elsif ($target eq 'webgrade') { @@ -1378,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; } @@ -1561,8 +1614,10 @@ sub show_queue { my $classlist = &get_limited_classlist(\@chosen_sections); if (!(grep(/^all$/,@chosen_sections))) { - $result.=' Showing only sections '.join(', ',@chosen_sections). - '. '."\n"; + $result.='' + .&mt('Showing only sections [_1].' + ,''.join(', ',@chosen_sections).'') + ." \n"; } my ($view,$view_section); @@ -1579,7 +1634,7 @@ sub show_queue { $result .= ''. &mt('Return to resource').' '. - "\n Current Queue - $queue"; + "\n".&mt('Current Queue - [_1]',$queue).""; my $regexp="^$symb\0"; my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp); my ($tmp)=%queue; @@ -1596,8 +1651,8 @@ sub show_queue { $result.= &Apache::loncommon::start_data_table(). &Apache::loncommon::start_data_table_header_row(); - if ($with_selects) { $result.="Status | "; }
- $result.=" | user | data | ".
+ if ($with_selects) { $result.=''.&mt('Status').' | '; }
+ $result.=' | '.&mt('User').' | '.&mt('Data').' | '.
&Apache::loncommon::end_data_table_header_row();
foreach my $key (sort(keys(%queue))) {
my ($symb,$uname,$udom) = &decode_queue_key($key);
@@ -1644,7 +1699,7 @@ sub show_queue {
'start');
}
my $me=$env{'user.name'}.':'.$env{'user.domain'};
- $status=&mt('Locked by [_1] [_2]',$locker,$time);
+ $status=&mt('Locked by [_1] [_2]',''.$locker.'',$time);
if ($me eq $locker) {
($action,$description)=('resume',&mt('Resume'));
} else {
@@ -1679,9 +1734,11 @@ FORM
}
$result.= "".$classlist->{$uname.':'.$udom}[&Apache::loncoursedata::CL_FULLNAME()].
" ($uname:$udom) | ";
- $result.=''.$slot_text.' End time: '.
- &Apache::lonlocal::locallocaltime($end_time).
- " | ".&Apache::loncommon::end_data_table_row();
+ $result.=''.$slot_text.' '
+ .&mt('End time: [_1]'
+ ,&Apache::lonlocal::locallocaltime($end_time))
+ .' | '
+ .&Apache::loncommon::end_data_table_row();
}
}
$result.= &Apache::loncommon::end_data_table()."\n"; @@ -2034,8 +2091,10 @@ sub select_user { my $result; if (!(grep(/^all$/,@chosen_sections))) { - $result.=' Showing only sections '.join(', ',@chosen_sections). - '. '."\n"; + $result.='' + .&mt('Showing only sections [_1].' + ,''.join(', ',@chosen_sections).'') + .' '."\n"; } $result.=&Apache::loncommon::start_data_table(); @@ -2071,6 +2130,7 @@ sub select_user { $seclist.=''; } + my $buttontext=&mt('Regrade'); $result.=&Apache::loncommon::start_data_table_row(); $result.=<$classlist->{$student}[&Apache::loncoursedata::CL_FULLNAME()] ($student) Sec: $classlist->{$student}[&Apache::loncoursedata::CL_SECTION()] |
@@ -2432,10 +2492,14 @@ sub end_Dimension {
('sub' x $dimension{$dim}{'depth'}).'question';
$ucquestion =~ s/^(.)/uc($1)/e;
if ($dim_status eq 'pass') {
- $dim_info.=''.$ucquestion.' : you passed this '.$mandatory.' '.$question.''; + $dim_info.=''.$ucquestion.' : ' + .&mt('you passed this [_1] [_2]',$mandatory,$question) + .''; } if ($dim_status eq 'fail') { - $dim_info.=''.$ucquestion.' : you did not pass this '.$mandatory.' '.$question.''; + $dim_info.=''.$ucquestion.' : ' + .&mt('you did not pass this [_1] [_2]',$mandatory,$question) + .''; } my %counts = &get_counts($dim,$instance,$parstack, $safeeval); @@ -2634,16 +2698,11 @@ sub question_status_message { } $status .= '.'; if ($counts->{'opt'}) { - $status .= ' You were required to pass '.$counts->{'opt_req'}. - ' optional '; - if ($counts->{'opt_dim'} + $counts->{'man_dim'} < 1) { - $status .= - ($counts->{'opt_req'} == 1?'criterion':'criteria'); - } else { - $status .= - 'component'.($counts->{'opt_req'} == 1?'':'s'); - } - $status .= '.'; + if ($counts->{'opt_dim'} + $counts->{'man_dim'} < 1) { + $status .= ' '.&mt('You were required to pass [quant,_1,optional criterion,optional criteria].',$counts->{'opt_req'}); + } else { + $status .= ' '.&mt('You were required to pass [quant,_1,optional component].',$counts->{'opt_req'}); + } } return $status; } @@ -2973,25 +3032,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 .= <' - .&mt("No valid poctors are defined.") + .&mt("No valid proctors are defined.") .' '; } if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; } my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); $uri = &HTML::Entities::encode($uri,'<>&"'); + my %lt = &Apache::lonlocal::texthash( + 'prva' => "Proctor Validation", + 'yoro' => "Your room's proctor needs to validate your access to this resource.", + 'prus' => "Proctor's Username:", + 'pasw' => "Password:", + 'prdo' => "Proctor's Domain:", + 'vali' => 'Validate', + 'stui' => "Student who should be logged in is:", + 'name' => "Name:", + 'sid' => "Student/Employee ID", + 'unam' => "Username:", + ); my $result= (<Your room's proctor needs to validate your access to this resource. +$lt{'prva'}+$lt{'yoro'} $msg ENDCHECKOUT + return $result; } |