[LON-CAPA-cvs] cvs: loncom /interface/statistics lonproblemstatistics.pm lonstathelpers.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Thu, 01 Apr 2004 22:13:39 -0000
This is a MIME encoded message
--matthew1080857619
Content-Type: text/plain
matthew Thu Apr 1 17:13:39 2004 EDT
Modified files:
/loncom/interface/statistics lonstathelpers.pm
lonproblemstatistics.pm
Log:
lonstathelpers: Added §ions_description to begin consolidating code
lonproblemstatistics: Added excel output of sequence statistics, now use
formats for headers in the worksheet. Added a call to
&compute_sequence_statistics in &compute_all_statistics.
Fixed bug where the count mean for sequences was not stored.
--matthew1080857619
Content-Type: text/plain
Content-Disposition: attachment; filename="matthew-20040401171339.txt"
Index: loncom/interface/statistics/lonstathelpers.pm
diff -u loncom/interface/statistics/lonstathelpers.pm:1.10 loncom/interface/statistics/lonstathelpers.pm:1.11
--- loncom/interface/statistics/lonstathelpers.pm:1.10 Wed Mar 31 00:24:00 2004
+++ loncom/interface/statistics/lonstathelpers.pm Thu Apr 1 17:13:39 2004
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstathelpers.pm,v 1.10 2004/03/31 05:24:00 albertel Exp $
+# $Id: lonstathelpers.pm,v 1.11 2004/04/01 22:13:39 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -999,6 +999,43 @@
my $endtime = &Apache::lonhtmlcommon::get_date_from_form
('limitby_enddate');
return ($starttime,$endtime);
+}
+
+
+
+####################################################
+####################################################
+
+=pod
+
+=item sections_description
+
+Inputs: @Sections, an array of sections
+
+Returns: A text description of the sections selected.
+
+=cut
+
+####################################################
+####################################################
+sub sections_description {
+ my @Sections = @_;
+ my $sectionstring = '';
+ 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];
+ }
+ }
+ return $sectionstring;
}
####################################################
Index: loncom/interface/statistics/lonproblemstatistics.pm
diff -u loncom/interface/statistics/lonproblemstatistics.pm:1.81 loncom/interface/statistics/lonproblemstatistics.pm:1.82
--- loncom/interface/statistics/lonproblemstatistics.pm:1.81 Thu Apr 1 16:35:52 2004
+++ loncom/interface/statistics/lonproblemstatistics.pm Thu Apr 1 17:13:39 2004
@@ -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 @@
}
}
}
+ #
+ # Always show all the sequence statistics (for now)
+ foreach my $field (@SeqFields) {
+ $field->{'selected'} = 'yes';
+ }
return;
}
@@ -818,15 +823,9 @@
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 = '<tr>';
foreach my $field (@SeqFields) {
-# next if ($field->{'selected'} ne 'yes');
+ next if ($field->{'selected'} ne 'yes');
$row .= '<td bgcolor="'.$field->{'color'}.'"';
if (exists($field->{'align'})) {
$row .= ' align="'.$field->{'align'}.'"';
@@ -1184,6 +1183,8 @@
}
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 @@
#
# 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 @@
# 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 @@
#
$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 @@
$data->{$field->{'name'}});
}
$rows_output++;
+ $cols_output=0;
}
#
$excel_workbook->close();
@@ -1279,6 +1276,44 @@
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 @@
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 @@
$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;
}
--matthew1080857619--