--- loncom/interface/statistics/lonproblemstatistics.pm 2004/04/01 21:35:52 1.81
+++ loncom/interface/statistics/lonproblemstatistics.pm 2004/04/01 22:13:39 1.82
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonproblemstatistics.pm,v 1.81 2004/04/01 21:35:52 matthew Exp $
+# $Id: lonproblemstatistics.pm,v 1.82 2004/04/01 22:13:39 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -461,6 +461,11 @@ sub parse_field_selection {
}
}
}
+ #
+ # Always show all the sequence statistics (for now)
+ foreach my $field (@SeqFields) {
+ $field->{'selected'} = 'yes';
+ }
return;
}
@@ -818,15 +823,9 @@ sub sequence_html_header {
sub sequence_html_output {
my ($seq) = @_;
my $data = $SeqStat{$seq->{'symb'}};
-# $SeqStat{$symb}->{'max'}
-# $SeqStat{$symb}->{'min'}
-# $SeqStat{$symb}->{'mean'}
-# $SeqStat{$symb}->{'std'}
-# $SeqStat{$symb}->{'count'}
-# $SeqStat{$symb}->{'max_possible'}
my $row = '
';
foreach my $field (@SeqFields) {
-# next if ($field->{'selected'} ne 'yes');
+ next if ($field->{'selected'} ne 'yes');
$row .= '{'align'})) {
$row .= ' align="'.$field->{'align'}.'"';
@@ -1184,6 +1183,8 @@ sub Excel_output {
}
my $excel_sheet = $excel_workbook->addworksheet(
&Apache::loncommon::clean_excel_name($sheetname));
+ #
+ my $format = &Apache::loncommon::define_excel_formats($excel_workbook);
##
## Begin creating excel sheet
##
@@ -1191,28 +1192,17 @@ sub Excel_output {
#
# Put the course description in the header
$excel_sheet->write($rows_output,$cols_output++,
- $ENV{'course.'.$ENV{'request.course.id'}.'.description'});
+ $ENV{'course.'.$ENV{'request.course.id'}.'.description'},
+ $format->{'h1'});
$cols_output += 3;
#
# Put a description of the sections listed
my $sectionstring = '';
- my @Sections = @Apache::lonstatistics::SelectedSections;
- if (scalar(@Sections) > 1) {
- if (scalar(@Sections) > 2) {
- my $last = pop(@Sections);
- $sectionstring = "Sections ".join(', ',@Sections).', and '.$last;
- } else {
- $sectionstring = "Sections ".join(' and ',@Sections);
- }
- } else {
- if ($Sections[0] eq 'all') {
- $sectionstring = "All sections";
- } else {
- $sectionstring = "Section ".$Sections[0];
- }
- }
- $excel_sheet->write($rows_output,$cols_output++,$sectionstring);
- $cols_output += scalar(@Sections);
+ $excel_sheet->write($rows_output,$cols_output++,
+ &Apache::lonstathelpers::sections_description
+ (@Apache::lonstatistics::SelectedSections),
+ $format->{'h3'});
+ $cols_output += scalar(@Apache::lonstatistics::SelectedSections);
#
# Time restrictions
my $time_string;
@@ -1228,6 +1218,10 @@ sub Excel_output {
# See note above about lonlocal:locallocaltime
$time_string .= 'Data collected before '.localtime($endtime).'.';
}
+ if (defined($time_string)) {
+ $excel_sheet->write($rows_output,$cols_output++,$time_string);
+ $cols_output+= 5;
+ }
#
# Put the date in there too
$excel_sheet->write($rows_output,$cols_output++,
@@ -1235,29 +1229,31 @@ sub Excel_output {
#
$rows_output++;
$cols_output=0;
- #
- # Long Headers
- foreach my $field (@Fields) {
- next if ($field->{'name'} eq 'problem_num');
- next if ($field->{'selected'} ne 'yes');
- if (exists($field->{'long_title'})) {
+ ##
+ ## Sequence Statistics
+ ##
+ &write_headers($excel_sheet,$format,\$rows_output,\$cols_output,
+ \@SeqFields);
+ foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {
+ next if ($seq->{'num_assess'} < 1);
+ my $data = $SeqStat{$seq->{'symb'}};
+ $cols_output=0;
+ foreach my $field (@SeqFields) {
+ next if ($field->{'selected'} ne 'yes');
$excel_sheet->write($rows_output,$cols_output++,
- $field->{'long_title'});
- } else {
- $excel_sheet->write($rows_output,$cols_output++,'');
+ $data->{$field->{'name'}});
}
+ $rows_output++;
+ $cols_output=0;
}
+ ##
+ ## Resource Statistics
+ ##
$rows_output++;
$cols_output=0;
- # Brief headers
- foreach my $field (@Fields) {
- next if ($field->{'selected'} ne 'yes');
- next if ($field->{'name'} eq 'problem_num');
- # Use english for excel as I am not sure how well excel handles
- # other character sets....
- $excel_sheet->write($rows_output,$cols_output++,$field->{'title'});
- }
- $rows_output++;
+ &write_headers($excel_sheet,$format,\$rows_output,\$cols_output,
+ \@Fields);
+ #
foreach my $data (@StatsArray) {
$cols_output=0;
foreach my $field (@Fields) {
@@ -1267,6 +1263,7 @@ sub Excel_output {
$data->{$field->{'name'}});
}
$rows_output++;
+ $cols_output=0;
}
#
$excel_workbook->close();
@@ -1279,6 +1276,44 @@ sub Excel_output {
return;
}
+##
+## &write_headers
+##
+sub write_headers {
+ my ($excel_sheet,$format,$rows_output,$cols_output,$Fields) = @_;
+ ##
+ ## First the long titles
+ foreach my $field (@{$Fields}) {
+ next if ($field->{'name'} eq 'problem_num');
+ next if ($field->{'selected'} ne 'yes');
+ if (exists($field->{'long_title'})) {
+ $excel_sheet->write($$rows_output,${$cols_output},
+ $field->{'long_title'},
+ $format->{'bold'});
+ } else {
+ $excel_sheet->write($$rows_output,${$cols_output},'');
+ }
+ ${$cols_output}+= 1;
+ }
+ ${$cols_output} =0;
+ ${$rows_output}+=1;
+ ##
+ ## Then the short titles
+ foreach my $field (@{$Fields}) {
+ next if ($field->{'selected'} ne 'yes');
+ next if ($field->{'name'} eq 'problem_num');
+ # Use english for excel as I am not sure how well excel handles
+ # other character sets....
+ $excel_sheet->write($$rows_output,$$cols_output,
+ $field->{'title'},
+ $format->{'bold'});
+ $$cols_output+=1;
+ }
+ ${$cols_output} =0;
+ ${$rows_output}+=1;
+ return;
+}
+
##################################################
##################################################
##
@@ -1312,6 +1347,7 @@ sub compute_all_statistics {
foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {
last if ($c->aborted);
next if ($seq->{'num_assess'} < 1);
+ &compute_sequence_statistics($seq);
&compute_statistics_on_sequence($seq);
}
}
@@ -1530,10 +1566,10 @@ sub compute_sequence_statistics {
$SeqStat{$symb}->{'countmax'} = $cmax;
$SeqStat{$symb}->{'countmin'} = $cmin;
$SeqStat{$symb}->{'countstd'} = $cSTD;
+ $SeqStat{$symb}->{'countmean'} = $cMean;
$SeqStat{$symb}->{'count'} = $ccount;
$SeqStat{$symb}->{'items'} = $K;
$SeqStat{$symb}->{'KR-21'}=$kr_21;
-
return;
}
|