--- loncom/interface/lonstatistics.pm 2006/08/18 15:15:38 1.137
+++ loncom/interface/lonstatistics.pm 2012/05/10 18:47:29 1.156.2.1
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstatistics.pm,v 1.137 2006/08/18 15:15:38 raeburn Exp $
+# $Id: lonstatistics.pm,v 1.156.2.1 2012/05/10 18:47:29 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,19 +28,7 @@
#
###
-=pod
-
-=head1 NAME
-
-lonstatistics
-
-=head1 SYNOPSIS
-Main handler for statistics and chart.
-
-=over 4
-
-=cut
package Apache::lonstatistics;
@@ -76,36 +64,9 @@ use Apache::lonpercentage;
use Apache::lonstudentsubmissions();
use Apache::lonsurveyreports();
use Apache::longradinganalysis();
-use lib '/home/httpd/lib/perl/';
+use Apache::lonquickgrades();
use LONCAPA;
-#######################################################
-#######################################################
-
-=pod
-
-=item Package Variables
-
-=item @FullClasslist The full classlist
-
-=item @Students The students we are concerned with for this invocation
-
-=item @Sections The sections available in this class
-
-=item @Groups The groups available in the class
-
-=item $curr_student The student currently being examined
-
-=item $prev_student The student previous in the classlist
-
-=item $next_student The student next in the classlist
-
-=over
-
-=cut
-
-#######################################################
-#######################################################
#
# Classlist variables
#
@@ -113,43 +74,7 @@ my $curr_student;
my $prev_student;
my $next_student;
-#######################################################
-#######################################################
-
-=pod
-
-=item &clear_classlist_variables()
-
-undef the following package variables:
-
-=over
-=item @FullClasslist
-
-=item @Students
-
-=item @Sections
-
-=item @Groups
-
-=item %StudentData
-
-=item @StudentDataOrder
-
-=item @SelectedStudentData
-
-=item $curr_student
-
-=item $prev_student
-
-=item $next_student
-
-=back
-
-=cut
-
-#######################################################
-#######################################################
sub clear_classlist_variables {
undef(@FullClasslist);
undef(@Students);
@@ -162,45 +87,7 @@ sub clear_classlist_variables {
undef($next_student);
}
-#######################################################
-#######################################################
-
-=pod
-
-=item &PrepareClasslist()
-
-Build up the classlist information. The classlist information is kept in
-the following package variables:
-
-=over
-
-=item @FullClasslist
-
-=item @Students
-
-=item @Sections
-
-=item @Groups
-=item %StudentData
-
-=item @SelectedStudentData
-
-=item $curr_student
-
-=item $prev_student
-
-=item $next_student
-
-=back
-
-$curr_student, $prev_student, and $next_student may not be defined, depending
-upon the calling context.
-
-=cut
-
-#######################################################
-#######################################################
sub PrepareClasslist {
my %Sections;
&clear_classlist_variables();
@@ -313,7 +200,11 @@ sub PrepareClasslist {
if ($env{'request.course.sec'} !~ /^\s*$/) {
@Sections = ($env{'request.course.sec'});
} else {
- @Sections = sort {$a cmp $b} keys(%Sections);
+ @Sections = sort {
+ if ($a == $a && $b == $b ) { return $a <=> $b; }
+ return $a cmp $b;
+ } keys(%Sections);
+
unshift(@Sections,'all'); # Put 'all' at the front of the list
}
# Sort the groups
@@ -371,19 +262,7 @@ sub PrepareClasslist {
return;
}
-#######################################################
-#######################################################
-=pod
-
-=item get_selected_sections
-
-Returns an array of the selected sections
-
-=cut
-
-#######################################################
-#######################################################
sub get_selected_sections {
my @selected_sections =
&Apache::loncommon::get_env_multiple('form.Section');
@@ -401,19 +280,7 @@ sub get_selected_sections {
return @selected_sections;
}
-#######################################################
-#######################################################
-
-=pod
-
-=item get_selected_groups
-
-Returns an array of the selected groups
-
-=cut
-
-#######################################################
-#######################################################
+
sub get_selected_groups {
my @selected_groups =
&Apache::loncommon::get_env_multiple('form.Group');
@@ -427,21 +294,8 @@ sub get_selected_groups {
return @selected_groups;
}
-=pod
-=item §ion_and_enrollment_description
-
-Returns a string describing the currently selected section(s), group(s) and
-access status.
-
-Inputs: mode = 'plaintext' or 'localized' (defaults to 'localized')
- 'plaintext' is used for example in Excel spreadsheets.
-Returns: scalar description string.
-
-=cut
-#######################################################
-#######################################################
sub section_and_enrollment_description {
my ($mode) = @_;
if (! defined($mode)) { $mode = 'localized'; }
@@ -459,15 +313,15 @@ sub section_and_enrollment_description {
$description = §ion_or_group_text($mode,'section',@sections).
' '.§ion_or_group_text($mode,'group',@groups);
if ($mode eq 'localized') {
- $description .= &mt(' [_1] access status.',$env{'form.Status'});
+ $description .= ' '.&mt($env{'form.Status'}.' access status.');
} elsif ($mode eq 'plaintext') {
$description .= ' '.$env{'form.Status'}.' access status.';
}
return $description;
}
-#######################################################
-#######################################################
+
+
sub section_or_group_text {
my ($mode,$type,@items) = @_;
@@ -485,21 +339,21 @@ sub section_or_group_text {
);
if (scalar(@items) == 1 && $items[0] ne 'all') {
if ($mode eq 'localized') {
- $text = &mt('[_1] [_2].',$phrases{$type}{single},$items[0]);
+ $text = &mt($phrases{$type}{single}.' [_1].',$items[0]);
} elsif ($mode eq 'plaintext') {
$text = $phrases{$type}{single}.' '.$items[0].'.';
}
} elsif (scalar(@items) && $items[0] eq 'all') {
if ($mode eq 'localized') {
- $text = &mt('[_1].',$phrases{$type}{all});
+ $text = &mt($phrases{$type}{all}.'.');
} elsif ($mode eq 'plaintext') {
$text = $phrases{$type}{all}.'.';
}
} elsif (scalar(@items)) {
my $lastitem = pop(@items);
if ($mode eq 'localized') {
- $text = &mt('[_1] [_2] and [_3].',$phrases{$type}{plural},
+ $text = &mt($phrases{$type}{plural}.' [_1] and [_2].',
join(', ',@items),$lastitem);
} elsif ($mode eq 'plaintext') {
$text = $phrases{$type}{plural}.' '.join(', ',@items).' and '.
@@ -510,16 +364,6 @@ sub section_or_group_text {
}
-=pod
-
-=item get_students
-
-Returns a list of the selected students
-
-=cut
-
-#######################################################
-#######################################################
sub get_students {
if (! @Students) {
&PrepareClasslist()
@@ -527,84 +371,26 @@ sub get_students {
return @Students;
}
-#######################################################
-#######################################################
-=pod
-=item ¤t_student()
-
-Returns a pointer to a hash containing data about the currently
-selected student.
-
-=cut
-
-#######################################################
-#######################################################
sub current_student {
return $curr_student;
}
-#######################################################
-#######################################################
-=pod
-=item &previous_student()
-
-Returns a pointer to a hash containing data about the student prior
-in the list of students. Or something.
-
-=cut
-
-#######################################################
-#######################################################
sub previous_student {
return $prev_student;
}
-#######################################################
-#######################################################
-
-=pod
-
-=item &next_student()
-
-Returns a pointer to a hash containing data about the next student
-to be viewed.
-=cut
-#######################################################
-#######################################################
sub next_student {
return $next_student;
}
-##############################################
-##############################################
-
-=pod
-
-=item &StudentDataSelect($elementname,$status,$numvisible,$selected)
-
-Returns html for a selection box allowing the user to choose one (or more)
-of the fields of student data available (fullname, username, id, section, etc)
-
-=over 4
-
-=item $elementname The name of the HTML form element
-
-=item $status 'multiple' or 'single' selection box
-=item $numvisible The number of options to be visible
-=back
-
-=cut
-
-##############################################
-##############################################
sub StudentDataSelect {
my ($elementname,$status,$numvisible)=@_;
if ($numvisible < 1) {
@@ -615,51 +401,37 @@ sub StudentDataSelect {
my $Str = "\n";
$Str .= '\n";
return $Str;
}
-#######################################################
-#######################################################
-=pod
-
-=item &get_selected_maps($elementname)
-Input: Name of the
');
+ $r->print('
'
+ .&mt('Please notify the server administrator [_1]',
+ ,''.$serveradmin.'')
+ .'
');
$r->print('
'.
&mt('Course Statistics and Charts cannot be '.
- 'retrieved until the database is restarted. '.
+ 'retrieved until the database is restarted. '.
'Your data is intact but cannot be displayed '.
'at this time.').'
');
$r->print(&Apache::loncommon::end_page());
@@ -1193,15 +866,17 @@ ENDSTYLE
&Apache::loncoursedata::delete_caches($env{'requres.course.id'});
}
#
+ my $GoToPage = $env{'form.reportSelected'};
+ #
# Begin form output
$r->print('