--- loncom/interface/statistics/lonproblemstatistics.pm 2003/03/26 17:03:41 1.44
+++ loncom/interface/statistics/lonproblemstatistics.pm 2003/04/01 17:00:24 1.49
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonproblemstatistics.pm,v 1.44 2003/03/26 17:03:41 matthew Exp $
+# $Id: lonproblemstatistics.pm,v 1.49 2003/04/01 17:00:24 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -26,7 +26,26 @@
#
# (Navigate problems for statistical reports
#
-###
+###############################################
+###############################################
+
+=pod
+
+=head1 NAME
+
+lonproblemstatistics
+
+=head1 SYNOPSIS
+
+Routines to present problem statistics to instructors via tables,
+Excel files, and plots.
+
+=over 4
+
+=cut
+
+###############################################
+###############################################
package Apache::lonproblemstatistics;
@@ -37,9 +56,122 @@ use Apache::loncoursedata;
use Apache::lonstatistics;
use Spreadsheet::WriteExcel;
-#######################################################
-#######################################################
+my @Fields = (
+ { name => 'problem_num',
+ title => 'P#',
+ align => 'right',
+ color => '#FFFFE6' },
+ { name => 'container',
+ title => 'Container',
+ align => 'left',
+ color => '#FFFFE6',
+ sortable => 'yes' },
+ { name => 'title',
+ title => 'Title',
+ align => 'left',
+ color => '#FFFFE6',
+ special => 'link',
+ sortable => 'yes', },
+ { name => 'part',
+ title => 'Part',
+ align => 'left',
+ color => '#FFFFE6' },
+ { name => 'num_students',
+ title => '#Stdnts',
+ align => 'right',
+ color => '#EEFFCC',
+ format => '%d',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Number of Students Attempting Problem' },
+ { name => 'tries',
+ title => 'Tries',
+ align => 'right',
+ color => '#EEFFCC',
+ format => '%d',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Total Number of Tries' },
+ { name => 'max_tries',
+ title => 'Max Tries',
+ align => 'right',
+ color => '#DDFFFF',
+ format => '%d',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Maximum Number of Tries' },
+ { name => 'mean_tries',
+ title => 'Mean Tries',
+ align => 'right',
+ color => '#DDFFFF',
+ format => '%5.2f',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Average Number of Tries' },
+ { name => 'std_tries',
+ title => 'S.D. tries',
+ align => 'right',
+ color => '#DDFFFF',
+ format => '%5.2f',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Standard Deviation of Number of Tries' },
+ { name => 'skew_tries',
+ title => 'Skew Tries',
+ align => 'right',
+ color => '#DDFFFF',
+ format => '%5.2f',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Skew of Number of Tries' },
+ { name => 'deg_of_diff',
+ title => 'DoDiff',
+ align => 'right',
+ color => '#DDFFFF',
+ format => '%5.2f',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Degree of Difficulty' },
+ { name => 'num_solved',
+ title => '#YES',
+ align => 'right',
+ color => '#FFDDDD',
+ format => '%d',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Number of Students able to Solve' },
+ { name => 'num_override',
+ title => '#yes',
+ align => 'right',
+ color => '#FFDDDD',
+ format => '%d',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Number of Students given Override' },
+ { name => 'per_wrong',
+ title => '%Wrng',
+ align => 'right',
+ color => '#FFFFE6',
+ format => '%4.1f',
+ sortable => 'yes',
+ graphable => 'yes',
+ long_title => 'Percent Wrong' },
+);
+
+###############################################
+###############################################
+
+=pod
+
+=item &CreateInterface()
+Create the main intereface for the statistics page. Allows the user to
+select sections, maps, and output.
+
+=cut
+
+###############################################
+###############################################
sub CreateInterface {
my $Str = '';
$Str .= '
'."\n";
@@ -77,6 +209,13 @@ sub CreateInterface {
=item &CreateAndParseOutputSelector()
+Construct a selection list of options for output and parse output selections.
+The current output selected is indicated by the values of the two package
+variables $output_mode and $show. @OutputOptions holds the descriptions of
+the output options and the values for $output_mode and $show.
+
+Based on code from lonstudentassessment.pm.
+
=cut
#######################################################
@@ -105,20 +244,6 @@ my @OutputOptions =
mode => 'excel',
show => 'all',
},
- { name => 'Degree of Difficulty Plot',
- value => 'plot deg diff',
- description => 'Generate a plot of the degree of difficulty of each '.
- 'problem part.',
- mode => 'plot',
- show => 'deg of diff',
- },
- { name => 'Percent Wrong Plot',
- value => 'plot per wrong',
- description => 'Generate a plot showing the percent of students who '.
- 'were unable to complete each problem part',
- mode => 'plot',
- show => 'per wrong',
- },
);
sub OutputDescriptions {
@@ -135,10 +260,10 @@ sub OutputDescriptions {
sub CreateAndParseOutputSelector {
my $Str = '';
- my $elementname = 'outputmode';
+ my $elementname = 'statsoutputmode';
#
# Format for output options is 'mode, restrictions';
- my $selected = 'html, with links';
+ my $selected = 'HTML problem statistics grouped';
if (exists($ENV{'form.'.$elementname})) {
if (ref($ENV{'form.'.$elementname} eq 'ARRAY')) {
$selected = $ENV{'form.'.$elementname}->[0];
@@ -159,6 +284,10 @@ sub CreateAndParseOutputSelector {
# Build the form element
$Str = qq/