'
+ .&mt('Unable to retrieve course information.')
+ .'
');
}
# If we're showing links, show a checkbox to open in new
# windows.
if ($show_links ne 'no') {
+ my $labeltext = &mt('Show links in new window');
$r->print(<new_window = true;
-Show links in new window:
-
+
+
+$labeltext
NEW_WINDOW_CHECKBOX
}
#
$r->print("".$env{'course.'.$env{'request.course.id'}.'.description'}.
- " ".localtime(time)." ");
+ " ".&Apache::lonlocal::locallocaltime(time)."");
#
if ($chosen_output->{'base'} !~ /^final table/) {
- $r->print("".$chosen_output->{'shortdesc'}." ");
+ $r->print("".&mt($chosen_output->{'shortdesc'})." ");
}
my $Str = "\n";
# First, the @StudentData fields need to be listed
@@ -712,8 +714,8 @@ NEW_WINDOW_CHECKBOX
$width{$symb}->{'width_sum'} += 1;
}
$total_count += &count_parts($navmap,$seq);
- # Use 3 digits for the sum
- $width{$symb}->{'width_sum'} += 3;
+ # Use 6 digits for the sum
+ $width{$symb}->{'width_sum'} += 6;
}
# Compute width of maximum
if ($chosen_output->{'sequence_max'}) {
@@ -721,8 +723,8 @@ NEW_WINDOW_CHECKBOX
# One digit for the '/'
$width{$symb}->{'width_sum'} +=1;
}
- # Use 3 digits for the total
- $width{$symb}->{'width_sum'}+=3;
+ # Use 6 digits for the total
+ $width{$symb}->{'width_sum'}+=6;
}
#
if ($chosen_output->{'every_problem'}) {
@@ -824,7 +826,12 @@ sub html_outputstudent {
return if (! defined($navmap));
#
if($count++ % 5 == 0 && $count > 0) {
- $r->print(" ");
+# $r->print(" ");
+ $r->print(' ');
+ &Apache::lonhtmlcommon::Increment_PrgWin(
+ $r,\%prog_state,'last five students',5);
+ $r->rflush();
+ $r->print('');
}
# First, the @StudentData fields need to be listed
my @to_show = &get_student_fields_to_show();
@@ -843,12 +850,20 @@ sub html_outputstudent {
my @tmp = &Apache::loncoursedata::get_current_state
($student->{'username'},$student->{'domain'},undef,
$env{'request.course.id'});
- if ((scalar @tmp > 0) && ($tmp[0] !~ /^error:/)) {
+ if ((scalar @tmp > 0) && ($tmp[0] !~ /^error:(.*)/)) {
%StudentsData = @tmp;
- }
- if (scalar(@tmp) < 1) {
+ } else {
+ my $error = $1;
+ if (scalar(@tmp) < 1) {
+ $Str .= ''
+ .&mt('No Course Data')
+ .' '."\n";
+ } else {
+ $Str .= ''
+ .&mt('Error getting student data ([_1])',$error)
+ .' '."\n";
+ }
$nodata_count++;
- $Str .= 'No Course Data '."\n";
$r->print($Str);
$r->rflush();
return;
@@ -876,16 +891,17 @@ sub html_outputstudent {
$ratio .= ' ';
}
if ($chosen_output->{'sequence_sum'} && $score ne ' ') {
- my $score .= sprintf("%3.0f",$score);
- $ratio .= (' 'x(3-length($score))).$score;
+ my $score .= sprintf("%3.2f",$score);
+ $ratio .= (' 'x(6-length($score))).$score;
} elsif($chosen_output->{'sequence_sum'}) {
- $ratio .= ' 'x3;
+ $ratio .= ' 'x6;
}
if ($chosen_output->{'sequence_max'}) {
if ($chosen_output->{'sequence_sum'}) {
$ratio .= '/';
}
- $ratio .= sprintf("%3.0f",$seq_max);
+ my $sequence_total=sprintf("%3.2f",$seq_max);
+ $ratio .= $sequence_total.(' 'x(6-length($sequence_total)));
}
#
if (! $chosen_output->{'every_problem'}) {
@@ -919,16 +935,16 @@ sub html_outputstudent {
if (! defined($score)) {
$score = ' ' x $total_sum_width;
} else {
- $score = sprintf("%.0f",$score);
- $score = (' 'x(3-length($score))).$score;
+ $score = sprintf("%.2f",$score);
+ $score = (' 'x(6-length($score))).$score;
}
$Str .= ' '.' 'x($total_sum_width-length($score)).$score.' / '.$max;
$Str .= " \n";
#
$r->print($Str);
#
- $r->rflush();
- &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,'last student');
+# $r->rflush();
+# &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,'last student');
return;
}
@@ -953,12 +969,12 @@ sub html_finish {
sub StudentAverageTotal {
my $Str = ''.&mt('Summary Tables').' '.$/;
- $Str .= ' '."\n";
- $Str .= ''.
+ $Str .= &Apache::loncommon::start_data_table();
+ $Str .= &Apache::loncommon::start_data_table_header_row().
''.&mt('Title').' '.
''.&mt('Average').' '.
''.&mt('Maximum').' '.
- ' '.$/;
+ &Apache::loncommon::end_data_table_header_row().$/;
foreach my $seq (@sequences) {
my $symb = $seq->symb;
my $ave;
@@ -972,46 +988,53 @@ sub StudentAverageTotal {
}
my $max = $Statistics->{$symb}->{'max'};
$ave = sprintf("%.2f",$ave);
- $Str .= ''.$seq->compTitle.' '.
+ $Str .= &Apache::loncommon::start_data_table_row().
+ ''.$seq->compTitle.' '.
''.$ave.' '.
- ''.$max.' '.' '."\n";
+ ''.$max.' '.' '.
+ &Apache::loncommon::end_data_table_row()."\n";
}
- $Str .= "
\n";
+ $Str .= &Apache::loncommon::end_data_table()."\n";
return $Str;
}
sub SingleStudentTotal {
return if (! defined($navmap));
my $student = &Apache::lonstatistics::current_student();
- my $Str = ''.&mt('Summary table for [_1] ([_2]@[_3])',
+ my $Str = ''.&mt('Summary table for [_1] ([_2])',
$student->{'fullname'},
- $student->{'username'},$student->{'domain'}).' ';
+ $student->{'username'}.':'.$student->{'domain'}).' ';
$Str .= $/;
- $Str .= ''."\n";
+ $Str .= &Apache::loncommon::start_data_table()."\n";
$Str .=
- ''.
+ &Apache::loncommon::start_data_table_header_row().
''.&mt('Sequence or Folder').' ';
if ($chosen_output->{'base'} eq 'tries') {
$Str .= ''.&mt('Parts Correct').' ';
} else {
$Str .= ''.&mt('Score').' ';
}
- $Str .= ''.&mt('Maximum').' '." \n";
+ $Str .= ''.&mt('Maximum').' '.
+ &Apache::loncommon::end_data_table_header_row()."\n";
my $total = 0;
my $total_max = 0;
foreach my $seq (@sequences) {
my $value = $Statistics->{$seq->symb}->{'score'};
my $max = $Statistics->{$seq->symb}->{'max'};
- $Str .= ''.&HTML::Entities::encode($seq->compTitle).' '.
+ $Str .= &Apache::loncommon::start_data_table_row().
+ ''.&HTML::Entities::encode($seq->compTitle).' '.
''.$value.' '.
- ''.$max.' '."\n";
+ ''.$max.' '.
+ &Apache::loncommon::end_data_table_row()."\n";
$total += $value;
$total_max +=$max;
}
- $Str .= ''.&mt('Total').' '.
+ $Str .= &Apache::loncommon::start_data_table_row().
+ ''.&mt('Total').' '.
''.$total.' '.
- ''.$total_max." \n";
- $Str .= "
\n";
+ ''.$total_max.' '.
+ &Apache::loncommon::end_data_table_row()."\n";
+ $Str .= &Apache::loncommon::end_data_table()."\n";
return $Str;
}
@@ -1161,11 +1184,11 @@ sub excel_initialize {
#
# Put the date in there too
$excel_sheet->write($header_row,$cols_output++,
- 'Compiled on '.localtime(time),$format->{'h3'});
+ &mt('Compiled on [_1]',&Apache::lonlocal::locallocaltime(time)),$format->{'h3'});
#
$cols_output = 0;
$excel_sheet->write($description_row,$cols_output++,
- $chosen_output->{'shortdesc'},
+ &mt($chosen_output->{'shortdesc'}),
$format->{'b'});
#
$cols_output = 0;
@@ -1243,17 +1266,17 @@ sub excel_initialize {
$formula_data{$symb}->{'Excel:scorecol'}=$cols_output;
if ($chosen_output->{'base'} eq 'parts correct total') {
$excel_sheet->write($resource_name_row,$cols_output++,
- 'parts correct',
+ &mt('parts correct'),
$format->{'bold'});
} elsif ($chosen_output->{'sequence_sum'}) {
if ($chosen_output->{'correct'}) {
# Only reporting the number correct, so do not call it score
$excel_sheet->write($resource_name_row,$cols_output++,
- 'sum',
+ &mt('sum'),
$format->{'bold'});
} else {
$excel_sheet->write($resource_name_row,$cols_output++,
- 'score',
+ &mt('score'),
$format->{'bold'});
}
}
@@ -1263,7 +1286,7 @@ sub excel_initialize {
($first_data_row,$cols_output-1);
if ($chosen_output->{'sequence_max'}) {
$excel_sheet->write($resource_name_row,$cols_output,
- 'maximum',
+ &mt('maximum'),
$format->{'bold'});
$formula_data{$symb}->{'Excel:maxcell'} =
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
@@ -1277,11 +1300,11 @@ sub excel_initialize {
}
}
if ($chosen_output->{'grand_total'}) {
- $excel_sheet->write($resource_name_row,$cols_output++,'Total',
+ $excel_sheet->write($resource_name_row,$cols_output++,&mt('Total'),
$format->{'bold'});
}
if ($chosen_output->{'grand_maximum'}) {
- $excel_sheet->write($resource_name_row,$cols_output++,'Max. Total',
+ $excel_sheet->write($resource_name_row,$cols_output++,&mt('Max. Total'),
$format->{'bold'});
}
$total_formula = $excel_sheet->store_formula($total_formula_string);
@@ -1372,17 +1395,17 @@ sub excel_initialize {
if ($chosen_output->{'summary_table'}) {
$cols_output = 0;
$excel_sheet->write($summary_header_row,$cols_output++,
- 'Summary Table',$format->{'bold'});
+ &mt('Summary Table'),$format->{'bold'});
if ($chosen_output->{'maximum_row'}) {
$excel_sheet->write($summary_header_row,$cols_output++,
- 'Maximum',$format->{'bold'});
+ &mt('Maximum'),$format->{'bold'});
}
$excel_sheet->write($summary_header_row,$cols_output++,
- 'Average',$format->{'bold'});
+ &mt('Average'),$format->{'bold'});
$excel_sheet->write($summary_header_row,$cols_output++,
- 'Median',$format->{'bold'});
+ &mt('Median'),$format->{'bold'});
$excel_sheet->write($summary_header_row,$cols_output++,
- 'Std Dev',$format->{'bold'});
+ &mt('Std Dev'),$format->{'bold'});
my $row = $summary_header_row+1;
foreach my $seq (@sequences) {
my $symb = $seq->symb;
@@ -1422,14 +1445,10 @@ sub excel_initialize {
if ($env{'form.SelectedStudent'}) {
$studentcount = '1';
}
- if ($studentcount > 1) {
- $r->print(''.&mt('Compiling Excel spreadsheet for [_1] students',
- $studentcount)." \n");
- } else {
- $r->print(''.
- &mt('Compiling Excel spreadsheet for 1 student').
- " \n");
- }
+ $r->print(''
+ .&mt('Compiling Excel spreadsheet for [quant,_1,student]...',$studentcount)
+ ."
\n"
+ );
$r->rflush();
#
# Initialize progress window
@@ -1577,7 +1596,7 @@ sub excel_finish {
#
# Tell the user where to get their excel file
$r->print(' '.
- 'Your Excel spreadsheet. '."\n");
+ ''.&mt('Your Excel spreadsheet').' '."\n");
$r->rflush();
&excel_cleanup();
return;
@@ -1660,7 +1679,7 @@ END
# Datestamp
my $description = $env{'course.'.$env{'request.course.id'}.'.description'};
print $outputfile '"'.&Apache::loncommon::csv_translate($description).'",'.
- '"'.&Apache::loncommon::csv_translate(scalar(localtime(time))).'"'.
+ '"'.&Apache::loncommon::csv_translate(scalar(&Apache::lonlocal::locallocaltime(time))).'"'.
"\n";
print $outputfile '"'.
&Apache::loncommon::csv_translate
@@ -1700,23 +1719,23 @@ END
$sequence_row.='"",'x$count;
if ($chosen_output->{'sequence_sum'}) {
if($chosen_output->{'correct'}) {
- $resource_row .= '"sum",';
+ $resource_row .= '"'.&mt('sum').'",';
} else {
- $resource_row .= '"score",';
+ $resource_row .= '"'.&mt('score').'",';
}
}
if ($chosen_output->{'sequence_max'}) {
$sequence_row.= '"",';
- $resource_row .= '"maximum possible",';
+ $resource_row .= '"'.&mt('maximum possible').'",';
}
}
if ($chosen_output->{'grand_total'}) {
$sequence_row.= '"",';
- $resource_row.= '"Total",';
+ $resource_row.= '"'.&mt('Total').'",';
}
if ($chosen_output->{'grand_maximum'}) {
$sequence_row.= '"",';
- $resource_row.= '"Maximum",';
+ $resource_row.= '"'.&mt('Maximum').'",';
}
chomp($sequence_row);
chomp($resource_row);
@@ -1820,7 +1839,7 @@ sub csv_finish {
#
# Tell the user where to get their csv file
$r->print(' '.
- ''.&mt('Your csv file.').' '."\n");
+ ''.&mt('Your CSV file.').' '."\n");
$r->rflush();
&csv_cleanup();
return;
@@ -1951,11 +1970,8 @@ sub student_tries_on_sequence {
#
if ( ($links eq 'yes' && $symbol ne ' ') ||
($links eq 'all')) {
- if (length($symbol) > 1) {
- &Apache::lonnet::logthis('length of symbol "'.$symbol.'" > 1');
- }
my $link = '/adm/grades'.
- '?symb='.&escape($resource->symb).
+ '?symb='.&escape($resource->shown_symb).
'&student='.$student->{'username'}.
'&userdom='.$student->{'domain'}.
'&command=submission';
@@ -2110,7 +2126,7 @@ sub student_performance_on_sequence {
#
if ( ($links eq 'yes' && $symbol ne ' ') || ($links eq 'all')) {
my $link = '/adm/grades' .
- '?symb='.&escape($symb).
+ '?symb='.&escape($resource->shown_symb).
'&student='.$student->{'username'}.
'&userdom='.$student->{'domain'}.
'&command=submission';