--- loncom/interface/statistics/lonproblemstatistics.pm 2018/03/07 13:32:56 1.122.2.4 +++ loncom/interface/statistics/lonproblemstatistics.pm 2013/10/01 17:52:03 1.123 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonproblemstatistics.pm,v 1.122.2.4 2018/03/07 13:32:56 raeburn Exp $ +# $Id: lonproblemstatistics.pm,v 1.123 2013/10/01 17:52:03 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -52,6 +52,7 @@ package Apache::lonproblemstatistics; use strict; use Apache::lonnet; use Apache::loncommon(); +use Apache::lonquickgrades(); use Apache::lonhtmlcommon; use Apache::loncoursedata; use Apache::lonstatistics; @@ -182,7 +183,7 @@ my @Fields = ( format => '%d', sortable => 'yes', graphable => 'yes', - long_title => 'Minimum Number of Tries', + long_title => 'Minumum Number of Tries', selectable => 'yes', defaultselected => 'yes', }, @@ -282,7 +283,7 @@ my @Fields = ( sortable => 'yes', graphable => 'yes', long_title => 'Degree of Difficulty'. - ' ~[ 1 - ((#YES+#yes) / Tries) ~]', + ' { 1 - ((#YES+#yes) / Tries) }', selectable => 'yes', defaultselected => 'yes', }, @@ -438,7 +439,7 @@ my @SeqFields = ( format => '%4.2f', sortable => 'no', graphable => 'no', - long_title => 'Minimum Sequence Score', + long_title => 'Minumum Sequence Score', selectable => 'yes', defaultselected => 'no', }, @@ -493,7 +494,7 @@ my @SeqFields = ( format => '%4.2f', sortable => 'no', graphable => 'no', - long_title => 'Minimum Number of Correct Problems', + long_title => 'Minumum Number of Correct Problems', selectable => 'yes', defaultselected => 'no', }, @@ -586,14 +587,14 @@ sub parse_field_selection { sub field_selection_input { my $Str = '\n"; } @@ -618,6 +619,7 @@ sub CreateInterface { &parse_field_selection(); # my $Str = ''; + $Str .= '

'; $Str .= &Apache::loncommon::start_data_table(); $Str .= &Apache::loncommon::start_data_table_header_row(); $Str .= ''.&mt('Sections').''; @@ -643,13 +645,14 @@ sub CreateInterface { $Str .= &field_selection_input(); $Str .= ''; $Str .= &plot_dropdown(); - $Str .= "\n"; + $Str .= ''."\n"; $Str .= ''; $Str .= &Apache::lonstathelpers::limit_by_time_form(); $Str .= ''."\n"; $Str .= &Apache::loncommon::end_data_table_row(); $Str .= &Apache::loncommon::end_data_table(); # + $Str .= '

'; $Str .= ''; $Str .= (' 'x10); @@ -704,6 +707,7 @@ sub BuildProblemStatisticsPage { # Finally let the user know we are here $r->print(&Apache::lonhtmlcommon::breadcrumbs('Overall Problem Statistics', 'Statistics_Overall_Key')); + &Apache::lonquickgrades::startGradeScreen($r,'statistics'); my $interface = &CreateInterface($r); $r->print($interface); @@ -799,8 +803,9 @@ sub output_sequence_statistics { $r->print('

'.&mt('Sequence Statistics'). &Apache::loncommon::help_open_topic('Statistics_Sequence'). '

'); - $r->print(&Apache::loncommon::start_data_table()); + $r->print(&Apache::loncommon::start_data_table().&Apache::loncommon::start_data_table_header_row()); $r->print(&sequence_html_header()); + $r->print(&Apache::loncommon::end_data_table_header_row()); foreach my $seq (@sequences) { last if ($c->aborted); &compute_sequence_statistics($seq); @@ -822,7 +827,7 @@ sub output_sequence_statistics { sub output_html_by_sequence { my ($r) = @_; my $c = $r->connection(); - $r->print('
'.&html_preamble()); + $r->print('
'.&html_preamble()); # foreach my $seq (@sequences) { last if ($c->aborted); @@ -926,16 +931,14 @@ sub statistics_table_header { next if ($options =~ /no $field->{'name'}/); next if ($field->{'selected'} ne 'yes'); $header_row .= ''; - my $header_row_text = &mt($field->{'title'}); if (exists($field->{'sortable'}) && $field->{'sortable'} eq 'yes') { - $header_row .= - '{'name'}."'". - ';document.Statistics.submit();">'. - $header_row_text. - ''; - } else { - $header_row .= $header_row_text; + ';document.Statistics.submit();">'; + } + $header_row .= &mt($field->{'title'}); + if ($options =~ /sortable/) { + $header_row.= ''; } if ($options !~ /no plots/ && exists($field->{'graphable'}) && @@ -952,13 +955,13 @@ sub statistics_table_header { } sub sequence_html_header { - my $Str .= &Apache::loncommon::start_data_table_header_row(); + my $Str .= ''; foreach my $field (@SeqFields) { # next if ($field->{'selected'} ne 'yes'); $Str .= '{'title'}).''; + $Str .= '>'.$field->{'title'}.''; } - $Str .= &Apache::loncommon::end_data_table_header_row(); + $Str .= ''; return $Str; } @@ -966,7 +969,7 @@ sub sequence_html_header { sub sequence_html_output { my ($seq) = @_; my $data = $SeqStat{$seq->symb}; - my $row = &Apache::loncommon::start_data_table_row(); + my $row = ''; foreach my $field (@SeqFields) { next if ($field->{'selected'} ne 'yes'); $row .= 'write($rows_output,$cols_output++,$time_string); @@ -1362,7 +1364,7 @@ sub Excel_output { # # Put the date in there too $excel_sheet->write($rows_output,$cols_output++, - &mt('Compiled on [_1]',&Apache::lonlocal::locallocaltime(time))); + 'Compiled on '.localtime(time)); # $rows_output++; $cols_output=0; @@ -1667,11 +1669,11 @@ sub compute_discrimination_factor { my $number_to_grab = int(scalar(@{$ranking})/4); my $num_students = scalar(@{$ranking}); my @BottomSet = map { $_->[&Apache::loncoursedata::RNK_student()]; - } @{$ranking}[0..$number_to_grab-1]; + } @{$ranking}[0..$number_to_grab]; my @TopSet = map { $_->[&Apache::loncoursedata::RNK_student()]; - } @{$ranking}[-$number_to_grab..-1]; + } @{$ranking}[-$number_to_grab..0]; if (! @BottomSet || (@BottomSet == 1 && $BottomSet[0] eq '') || ! @TopSet || (@TopSet == 1 && $TopSet[0] eq '')) { return 'nan';