--- loncom/interface/statistics/lonproblemstatistics.pm 2023/09/08 00:07:30 1.122.2.4.2.1
+++ 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.2.1 2023/09/08 00:07:30 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";
- $Str .= ''.&mt('all').' '."\n";
+ $Str .= 'all '."\n";
foreach my $field (@Fields) {
next if ($field->{'selectable'} ne 'yes');
- $Str .= ' {'name'}.'" ';
if ($field->{'selected'} eq 'yes') {
- $Str .= ' selected="selected"';
+ $Str .= 'selected ';
}
- $Str .= '>'.&mt($field->{'title'}).' '."\n";
+ $Str .= '>'.$field->{'title'}.''."\n";
}
$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);
@@ -757,10 +761,9 @@ sub BuildProblemStatisticsPage {
&Apache::lonstatistics::section_and_enrollment_description().
'');
my $count = 0;
- my $include_tools = 1;
foreach my $seq (@sequences) {
my @resources =
- &Apache::lonstathelpers::get_resources($navmap,$seq,$include_tools);
+ &Apache::lonstathelpers::get_resources($navmap,$seq);
$count += scalar(@resources);
}
if ($count > 10) {
@@ -800,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);
@@ -823,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);
@@ -927,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'}) &&
@@ -953,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;
}
@@ -967,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);
@@ -1363,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;
@@ -1468,9 +1469,8 @@ sub write_headers {
##################################################
sub compute_statistics_on_sequence {
my ($seq) = @_;
- my $include_tools = 1;
my @Data;
- foreach my $res (&Apache::lonstathelpers::get_resources($navmap,$seq,$include_tools)) {
+ foreach my $res (&Apache::lonstathelpers::get_resources($navmap,$seq)) {
foreach my $part (@{$res->parts}) {
next if (($res->is_survey($part)) || ($res->is_anonsurvey($part))) ;
#
@@ -1648,10 +1648,9 @@ Returns: integer between -1 and 1
###############################################
sub compute_discrimination_factor {
my ($resource,$part,$seq) = @_;
- my $include_tools = 1;
my $symb = $resource->symb;
my @Resources;
- foreach my $res (&Apache::lonstathelpers::get_resources($navmap,$seq,$include_tools)){
+ foreach my $res (&Apache::lonstathelpers::get_resources($navmap,$seq)){
next if ($res->symb eq $symb);
push (@Resources,$res->symb);
}
@@ -1670,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';
@@ -1715,11 +1714,10 @@ sub compute_discrimination_factor {
###############################################
sub compute_sequence_statistics {
my ($seq) = @_;
- my $include_tools = 1;
my $symb = $seq->symb;
my @Resources;
my $part_count;
- foreach my $res (&Apache::lonstathelpers::get_resources($navmap,$seq,$include_tools)) {
+ foreach my $res (&Apache::lonstathelpers::get_resources($navmap,$seq)) {
push (@Resources,$res->symb);
$part_count += scalar(@{$res->parts});
}