--- loncom/interface/lonstatistics.pm	2004/03/01 16:39:19	1.100
+++ loncom/interface/lonstatistics.pm	2004/06/24 19:36:16	1.107
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstatistics.pm,v 1.100 2004/03/01 16:39:19 matthew Exp $
+# $Id: lonstatistics.pm,v 1.107 2004/06/24 19:36:16 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -77,6 +77,7 @@ use Apache::lonproblemstatistics();
 use Apache::lonstudentassessment();
 use Apache::lonpercentage;
 use Apache::lonstudentsubmissions();
+use Apache::lonsurveyreports();
 
 #######################################################
 #######################################################
@@ -471,13 +472,22 @@ assessments.
 #######################################################
 #######################################################
 sub Sequences_with_Assess {
+    my ($mode) = @_;
+    $mode = 'selected' if (! defined($mode));
     my @Sequences_to_Show;
-    foreach my $map_symb (@SelectedMaps) {
-        foreach my $sequence (@Sequences) {
-            next if ($sequence->{'symb'} ne $map_symb && $map_symb ne 'all');
-            next if ($sequence->{'num_assess'} < 1);
+    foreach my $sequence (@Sequences) {
+        next if ($sequence->{'num_assess'} < 1);
+        if ($mode eq 'all') {
             push (@Sequences_to_Show,$sequence);
+        } elsif ($mode eq 'selected') {
+            foreach my $map_symb (@SelectedMaps) {
+                if ($sequence->{'symb'} eq $map_symb || $map_symb eq 'all'){
+                    push (@Sequences_to_Show,$sequence);
+                    last; # Only put it in once
+                }
+            }
         }
+
     }
     return @Sequences_to_Show;
 }
@@ -896,7 +906,13 @@ Ensures all student data is up to date.
 ###############################################
 ###############################################
 sub Gather_Full_Student_Data {
-    my ($r) = @_;
+    my ($r,$formname,$inputname) = @_;
+    my $status_type;
+    if (defined($formname)) {
+        $status_type = 'inline';
+    } else {
+        $status_type = 'popup';
+    }
     my $c = $r->connection();
     #
     &Apache::loncoursedata::clear_internal_caches();
@@ -906,7 +922,8 @@ sub Gather_Full_Student_Data {
     # Open the progress window
     my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
         ($r,&mt('Student Data Compilation Status'),
-         &mt('Student Data Compilation Progress'), scalar(@Students));
+         &mt('Student Data Compilation Progress'), scalar(@Students),
+         $status_type,undef,$formname,$inputname);
     #
     while (my $student = shift @Students) {
         return if ($c->aborted());
@@ -924,43 +941,68 @@ sub Gather_Full_Student_Data {
 ##################################################
 sub DisplayClasslist {
     my ($r)=@_;
+    &Apache::lonhtmlcommon::add_breadcrumb
+        ({text=>'Select One Student'});
+    #
+    # Output some of the standard interface components
+    my $Str;
+    $Str .= &Apache::lonhtmlcommon::breadcrumbs(undef,'Select One Student');
+    $Str .= '<p><table cellspacing="5">'."\n";
+    $Str .= '<tr>';
+    $Str .= '<th align="center"><b>'.&mt('Sections').'</b></th>';
+    $Str .= '<th align="center"><b>'.&mt('Enrollment Status').'</b></th>';
+    $Str .= '</tr>'.$/;
+    $Str .= '<tr>';
+    $Str .= '<td>'.
+        &Apache::lonstatistics::SectionSelect('Section','multiple',5).
+        '</td>';
+    $Str .= '<td>'.
+        &Apache::lonhtmlcommon::StatusOptions(undef,undef,5).
+        '</td>';
+    
+    $Str .= '</tr>'.$/;
+    $Str .= '</table></p>';
+    $Str .= '<input type="submit" name="selectstudent" value="'.
+        &mt('Update Display').'" />';
+    $r->print($Str);
+    $r->rflush();
     #
-    my @Fields = ('fullname','username','domain','id','section');
+    my @Fields = ('fullname','username','domain','id','section','status');
     #
-    my $Str='';
+    $Str = '';
     if (! @Students) {
         if ($SelectedSections[0] eq 'all') { 
             if (lc($ENV{'form.Status'}) eq 'any') {
-                $Str .= '<h2>There are no students in the course.</h2>';
+                $Str .= '<h2>'.
+                    &mt('There are no students in the course.').
+                    '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'active') {
-                $Str .= '<h2>There are no currently enrolled students in '.
-                    'the course.</h2>';
+                $Str .= '<h2>'.
+                &mt('There are no currently enrolled students in the course.').
+                    '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'expired') {
-                $Str .= '<h2>There are no previously enrolled '.
-                    'students in the course.</h2>';
+                $Str .= '<h2>'.
+                    &mt('There are no previously enrolled students in the course.').
+                        '</h2>';
             }
         } else { 
             my $sections;
-            if (@SelectedSections == 1) {
-                $sections = 'section '.$SelectedSections[0];
-            } elsif (@SelectedSections > 2) {
-                $sections = 'sections '.join(', ',@SelectedSections);
-                $sections =~ s/, ([^,])*$/, and $1/;
-            } else {
-                $sections = 'sections '.join(' and ',@SelectedSections);
-            }
             if (lc($ENV{'form.Status'}) eq 'any') {
-                $Str .= '<h2>There are no students in '.$sections.'.</h2>';
+                $Str .= '<h2>'.
+                    &mt('There are no students in the selected sections.').
+                    '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'active') {
-                $Str .= '<h2>There are no currently enrolled students '.
-                    'in '.$sections.'.</h2>';
+                $Str .= '<h2>'.
+                    &mt('There are no currently enrolled students in the selected sections.').
+                    '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'expired') {
-                $Str .= '<h2>There are no previously enrolled students '.
-                    'in '.$sections.'.</h2>';
+                $Str .= '<h2>'.
+                    &mt('There are no previously enrolled students in the selected sections.').
+                    '</h2>';
             }
         }
         $Str.= '<a href="/adm/statistics?reportSelected=student_assessment">'.
-            'Return to the chart.</a>';
+            &mt('Click here to return to the chart').'</a>';
         $r->print($Str);
         $r->rflush();
         return;
@@ -971,7 +1013,10 @@ sub DisplayClasslist {
     $Str .= '<table border="0"><tr><td bgcolor="#777777">'."\n";
     $Str .= '<table border="0" cellpadding="3"><tr bgcolor="#e6ffff">'."\n";
     foreach my $field (@Fields) {
-        $Str .= '<th><a href="/adm/statistics?reportSelected=classlist&sort='.$field.'">'.$field.
+        $Str .= '<th><a href="/adm/statistics?'.
+            'reportSelected=student_assessment&'.
+            'selectstudent=1&'.
+            'sort='.$field.'">'.&mt($field).
             '</a></th>';
     }
     $Str .= '</tr>'."\n";
@@ -996,6 +1041,8 @@ sub DisplayClasslist {
                 $Str .= &Apache::lonnet::escape($sname).'">';
                 $Str .= $student->{$field}.'&nbsp';
                 $Str .= '</a>';
+            } elsif ($field eq 'status') {
+                $Str .= &mt($student->{$field});
             } else {
                 $Str .= $student->{$field};
             }
@@ -1036,6 +1083,11 @@ sub CreateMainMenu {
                      short_description => 
     &mt('Prepare Excel spreadsheets of student submissions.'),
                  },
+                   { internal_name => 'survey_reports',
+                     name => &mt('Survey Reports'),
+                     short_description => 
+    &mt('Prepare reports on survey results.'),
+                 },
                    { internal_name => 'correct_problems_plot',
                      name => &mt('Correct Problems Plot'),
                      short_description => 
@@ -1181,6 +1233,12 @@ sub handler {
                   '/adm/statistics?reportselected=student_submission_reports',
                   text=>'Student Submission Reports'});
             &Apache::lonstudentsubmissions::BuildStudentSubmissionsPage($r,$c);
+        } elsif($GoToPage eq 'survey_reports') {
+            &Apache::lonhtmlcommon::add_breadcrumb
+                ({href=>
+                  '/adm/statistics?reportselected=survey_reports',
+                  text=>'Survey Reports'});
+            &Apache::lonsurveyreports::BuildSurveyReportsPage($r,$c);
         } elsif($GoToPage eq 'correct_problems_plot') {
             &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>'/adm/statistics?reportselected=correct_problems_plot',