--- loncom/interface/statistics/lonproblemstatistics.pm 2004/04/01 20:02:56 1.79 +++ loncom/interface/statistics/lonproblemstatistics.pm 2004/04/01 21:14:32 1.80 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonproblemstatistics.pm,v 1.79 2004/04/01 20:02:56 matthew Exp $ +# $Id: lonproblemstatistics.pm,v 1.80 2004/04/01 21:14:32 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -101,7 +101,7 @@ my @Fields = ( align => 'right', color => '#FFFFE6', selectable => 'no', - selected => 'yes', + defaultselected => 'yes', }, { name => 'container', title => 'Sequence or Folder', @@ -109,7 +109,7 @@ my @Fields = ( color => '#FFFFE6', sortable => 'yes', selectable => 'no', - selected => 'yes', + defaultselected => 'yes', }, { name => 'title', title => 'Title', @@ -118,14 +118,14 @@ my @Fields = ( special => 'link', sortable => 'yes', selectable => 'no', - selected => 'yes', + defaultselected => 'yes', }, { name => 'part', title => 'Part', align => 'left', color => '#FFFFE6', selectable => 'no', - selected => 'yes', + defaultselected => 'yes', }, { name => 'num_students', title => '#Stdnts', @@ -136,7 +136,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Number of Students Attempting Problem', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'tries', title => 'Tries', @@ -147,7 +147,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Total Number of Tries', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'max_tries', title => 'Max Tries', @@ -158,7 +158,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Maximum Number of Tries', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'min_tries', title => 'Min Tries', @@ -169,7 +169,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Minumum Number of Tries', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'mean_tries', title => 'Mean Tries', @@ -180,7 +180,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Average Number of Tries', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'std_tries', title => 'S.D. tries', @@ -191,7 +191,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Standard Deviation of Number of Tries', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'skew_tries', title => 'Skew Tries', @@ -202,7 +202,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Skew of Number of Tries', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'num_solved', title => '#YES', @@ -213,7 +213,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Number of Students able to Solve', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'num_override', title => '#yes', @@ -224,7 +224,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Number of Students given Override', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'num_wrong', title => '#Wrng', @@ -235,7 +235,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Percent of students whose final answer is wrong', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'deg_of_diff', title => 'DoDiff', @@ -247,7 +247,7 @@ my @Fields = ( long_title => 'Degree of Difficulty'. '[ 1 - ((#YES+#yes) / Tries) ]', selectable => 'yes', - selected => 'yes', + defaultselected => 'yes', }, { name => 'deg_of_disc', title => 'DoDisc', @@ -258,7 +258,7 @@ my @Fields = ( graphable => 'yes', long_title => 'Degree of Discrimination', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, ); @@ -270,7 +270,7 @@ my @SeqFields = ( special => 'no', sortable => 'no', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'items', title => '#Items', @@ -281,7 +281,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Number of Items in Sequence', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'scoremean', title => 'Score Mean', @@ -292,7 +292,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Mean Sequence Score', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'scorestd', title => 'Score STD', @@ -303,7 +303,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Standard Deviation of Sequence Scores', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'scoremax', title => 'Score Max', @@ -314,7 +314,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Maximum Sequence Score', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'scoremin', title => 'Score Min', @@ -325,7 +325,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Minumum Sequence Score', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'scorecount', title => 'Score N', @@ -336,7 +336,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Number of Students in score computations', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'countmean', title => 'Count Mean', @@ -347,7 +347,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Mean Sequence Score', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'countstd', title => 'Count STD', @@ -358,7 +358,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Standard Deviation of Sequence Scores', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'countmax', title => 'Count Max', @@ -369,7 +369,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Maximum Number of Correct Problems', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'countmin', title => 'Count Min', @@ -380,7 +380,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Minumum Number of Correct Problems', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'count', title => 'Count N', @@ -391,7 +391,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'Number of Students in score computations', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, { name => 'KR-21', title => 'KR-21', @@ -402,7 +402,7 @@ my @SeqFields = ( graphable => 'no', long_title => 'KR-21 reliability statistic', selectable => 'yes', - selected => 'no', + defaultselected => 'no', }, ); @@ -415,12 +415,28 @@ sub parse_field_selection { $ENV{'form.fieldselections'} = []; foreach my $field (@Fields) { next if ($field->{'selectable'} ne 'yes'); - if ($field->{'selected'} eq 'yes') { + if ($field->{'defaultselected'} eq 'yes') { push(@{$ENV{'form.fieldselections'}},$field->{'name'}); } } } # + # Make sure the data we are plotting is there + my %NeededFields; + if (exists($ENV{'form.plot'}) && $ENV{'form.plot'} ne '' && + $ENV{'form.plot'} ne 'none') { + if ($ENV{'form.plot'} eq 'degrees') { + $NeededFields{'deg_of_diff'}++; + $NeededFields{'deg_of_disc'}++; + } elsif ($ENV{'form.plot'} eq 'tries statistics') { + $NeededFields{'mean_tries'}++; + $NeededFields{'std_tries'}++; + $NeededFields{'problem_num'}++; + } else { + $NeededFields{$ENV{'form.plot'}}++; + } + } + # # This should not happen, but in case it does... if (ref($ENV{'form.fieldselections'}) ne 'ARRAY') { $ENV{'form.fieldselections'} = [$ENV{'form.fieldselections'}]; @@ -429,8 +445,15 @@ sub parse_field_selection { # Set the field data and the selected fields (for easier checking) undef(%SelectedFields); foreach my $field (@Fields) { - next if ($field->{'selectable'} ne 'yes'); - $field->{'selected'} = 'no'; + if ($field->{'selectable'} ne 'yes') { + $field->{'selected'} = 'yes'; + } else { + $field->{'selected'} = 'no'; + } + if (exists($NeededFields{$field->{'name'}})) { + $field->{'selected'} = 'yes'; + $SelectedFields{$field->{'name'}}++; + } foreach my $selection (@{$ENV{'form.fieldselections'}}) { if ($selection eq $field->{'name'} || $selection eq 'all') { $field->{'selected'} = 'yes'; @@ -470,7 +493,9 @@ select sections, maps, and output. ############################################### ############################################### sub CreateInterface { + # &parse_field_selection(); + # my $Str = ''; $Str .= &Apache::lonhtmlcommon::breadcrumbs (undef,'Overall Problem Statistics','Statistics_Overall_Key');