Diff for /loncom/interface/lonstatistics.pm between versions 1.122 and 1.123

version 1.122, 2005/03/21 19:47:53 version 1.123, 2005/04/07 06:56:23
Line 55  use vars qw( Line 55  use vars qw(
     @SelectedStudentData      @SelectedStudentData
     $enrollment_status);      $enrollment_status);
   
 use Apache::lonnet();  use Apache::lonnet;
 use Apache::lonhomework;  use Apache::lonhomework;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::loncoursedata;  use Apache::loncoursedata;
Line 194  sub PrepareClasslist { Line 194  sub PrepareClasslist {
     &clear_classlist_variables();      &clear_classlist_variables();
     #      #
     # Retrieve the classlist      # Retrieve the classlist
     my $cid  = $ENV{'request.course.id'};      my $cid  = $env{'request.course.id'};
     my $cdom = $ENV{'course.'.$cid.'.domain'};      my $cdom = $env{'course.'.$cid.'.domain'};
     my $cnum = $ENV{'course.'.$cid.'.num'};      my $cnum = $env{'course.'.$cid.'.num'};
     my ($classlist,$field_names) = &Apache::loncoursedata::get_classlist($cid,      my ($classlist,$field_names) = &Apache::loncoursedata::get_classlist($cid,
                                                                   $cdom,$cnum);                                                                    $cdom,$cnum);
     my @selected_sections = &get_selected_sections();      my @selected_sections = &get_selected_sections();
     #      #
     # Deal with instructors with restricted section access      # Deal with instructors with restricted section access
     if ($ENV{'request.course.sec'} !~ /^\s*$/) {      if ($env{'request.course.sec'} !~ /^\s*$/) {
         @selected_sections = ($ENV{'request.course.sec'});          @selected_sections = ($env{'request.course.sec'});
     }      }
     #      #
     # Set up %StudentData      # Set up %StudentData
Line 217  sub PrepareClasslist { Line 217  sub PrepareClasslist {
     #      #
     # get the status requested      # get the status requested
     $enrollment_status = 'Active';      $enrollment_status = 'Active';
     $enrollment_status = $ENV{'form.Status'} if (exists($ENV{'form.Status'}));      $enrollment_status = $env{'form.Status'} if (exists($env{'form.Status'}));
     #      #
     # Process the classlist      # Process the classlist
     while (my ($student,$student_data) = each (%$classlist)) {      while (my ($student,$student_data) = each (%$classlist)) {
Line 257  sub PrepareClasslist { Line 257  sub PrepareClasslist {
     }      }
     #      #
     # Put the consolidated section data in the right place      # Put the consolidated section data in the right place
     if ($ENV{'request.course.sec'} !~ /^\s*$/) {      if ($env{'request.course.sec'} !~ /^\s*$/) {
         @Sections = ($ENV{'request.course.sec'});          @Sections = ($env{'request.course.sec'});
     } else {      } else {
         @Sections = sort {$a cmp $b} keys(%Sections);          @Sections = sort {$a cmp $b} keys(%Sections);
         unshift(@Sections,'all'); # Put 'all' at the front of the list          unshift(@Sections,'all'); # Put 'all' at the front of the list
Line 266  sub PrepareClasslist { Line 266  sub PrepareClasslist {
     #      #
     # Sort the Students      # Sort the Students
     my $sortby = 'fullname';      my $sortby = 'fullname';
     $sortby = $ENV{'form.sort'} if (exists($ENV{'form.sort'}));      $sortby = $env{'form.sort'} if (exists($env{'form.sort'}));
     my @TmpStudents = sort { $a->{$sortby} cmp $b->{$sortby} ||      my @TmpStudents = sort { $a->{$sortby} cmp $b->{$sortby} ||
                              $a->{'fullname'} cmp $b->{'fullname'} } @Students;                               $a->{'fullname'} cmp $b->{'fullname'} } @Students;
     @Students = @TmpStudents;      @Students = @TmpStudents;
     #       # 
     # Now deal with that current student thing....      # Now deal with that current student thing....
     $curr_student = undef;      $curr_student = undef;
     if (exists($ENV{'form.SelectedStudent'})) {      if (exists($env{'form.SelectedStudent'})) {
         my ($current_uname,$current_dom) =           my ($current_uname,$current_dom) = 
             split(':',$ENV{'form.SelectedStudent'});              split(':',$env{'form.SelectedStudent'});
         my $i;          my $i;
         for ($i = 0; $i<=$#Students; $i++) {          for ($i = 0; $i<=$#Students; $i++) {
             next if (($Students[$i]->{'username'} ne $current_uname) ||               next if (($Students[$i]->{'username'} ne $current_uname) || 
Line 297  sub PrepareClasslist { Line 297  sub PrepareClasslist {
         }          }
     }      }
     #      #
     if (exists($ENV{'form.StudentData'})) {      if (exists($env{'form.StudentData'})) {
         if (ref($ENV{'form.StudentData'}) eq 'ARRAY') {          if (ref($env{'form.StudentData'}) eq 'ARRAY') {
             @SelectedStudentData = @{$ENV{'form.StudentData'}};              @SelectedStudentData = @{$env{'form.StudentData'}};
         } else {          } else {
             @SelectedStudentData = ($ENV{'form.StudentData'});              @SelectedStudentData = ($env{'form.StudentData'});
         }          }
     } else {      } else {
         @SelectedStudentData = ('username');          @SelectedStudentData = ('username');
Line 331  Returns an array of the selected section Line 331  Returns an array of the selected section
 #######################################################  #######################################################
 sub get_selected_sections {  sub get_selected_sections {
     my @selected_sections;      my @selected_sections;
     if (exists($ENV{'form.Section'})) {      if (exists($env{'form.Section'})) {
         if (ref($ENV{'form.Section'})) {          if (ref($env{'form.Section'})) {
             @selected_sections = @{$ENV{'form.Section'}};              @selected_sections = @{$env{'form.Section'}};
         } elsif ($ENV{'form.Section'} !~ /^\s*$/) {          } elsif ($env{'form.Section'} !~ /^\s*$/) {
             @selected_sections = ($ENV{'form.Section'});              @selected_sections = ($env{'form.Section'});
         }          }
     }      }
     @selected_sections = ('all') if (! @selected_sections);      @selected_sections = ('all') if (! @selected_sections);
Line 346  sub get_selected_sections { Line 346  sub get_selected_sections {
     }      }
     #      #
     # Deal with instructors with restricted section access      # Deal with instructors with restricted section access
     if ($ENV{'request.course.sec'} !~ /^\s*$/) {      if ($env{'request.course.sec'} !~ /^\s*$/) {
         @selected_sections = ($ENV{'request.course.sec'});          @selected_sections = ($env{'request.course.sec'});
     }      }
     return @selected_sections;      return @selected_sections;
 }  }
Line 386  sub section_and_enrollment_description { Line 386  sub section_and_enrollment_description {
     if (scalar(@sections) == 1 && $sections[0] ne 'all') {      if (scalar(@sections) == 1 && $sections[0] ne 'all') {
         if ($mode eq 'localized') {          if ($mode eq 'localized') {
             $description = &mt('Section [_1]. [_2] enrollment status.',              $description = &mt('Section [_1]. [_2] enrollment status.',
                                $sections[0],$ENV{'form.Status'});                                 $sections[0],$env{'form.Status'});
         } elsif ($mode eq 'plaintext') {          } elsif ($mode eq 'plaintext') {
             $description = 'Section '.$sections[0].'. '.              $description = 'Section '.$sections[0].'. '.
                 $ENV{'form.Status'}.' enrollment status.';                  $env{'form.Status'}.' enrollment status.';
         }          }
     } elsif (scalar(@sections) && $sections[0] eq 'all') {      } elsif (scalar(@sections) && $sections[0] eq 'all') {
         if ($mode eq 'localized') {          if ($mode eq 'localized') {
             $description = &mt('All sections. [_1] enrollment status.',              $description = &mt('All sections. [_1] enrollment status.',
                                $ENV{'form.Status'});                                 $env{'form.Status'});
         } elsif ($mode eq 'plaintext') {          } elsif ($mode eq 'plaintext') {
             $description = 'All sections. '.              $description = 'All sections. '.
                 $ENV{'form.Status'}.' enrollment status.';                  $env{'form.Status'}.' enrollment status.';
         }          }
     } elsif (scalar(@sections)) {      } elsif (scalar(@sections)) {
         my $lastsection = pop(@sections);          my $lastsection = pop(@sections);
         if ($mode eq 'localized') {          if ($mode eq 'localized') {
             $description = &mt('Sections [_1] and [_2]. [_3] enrollment status.',              $description = &mt('Sections [_1] and [_2]. [_3] enrollment status.',
                                join(', ',@sections),$lastsection,                                 join(', ',@sections),$lastsection,
                                $ENV{'form.Status'});                                 $env{'form.Status'});
         } elsif ($mode eq 'plaintext') {          } elsif ($mode eq 'plaintext') {
             $description =               $description = 
                 'Sections '.join(', ',@sections).' and '.$lastsection.'. '.                  'Sections '.join(', ',@sections).' and '.$lastsection.'. '.
                 $ENV{'form.Status'}.' enrollment status.';                  $env{'form.Status'}.' enrollment status.';
         }          }
     }      }
     return $description;      return $description;
Line 570  Returns: Array of symbs of selected maps Line 570  Returns: Array of symbs of selected maps
 sub get_selected_maps {  sub get_selected_maps {
     my ($elementname) = @_;      my ($elementname) = @_;
     my @selected_maps;      my @selected_maps;
     if (exists($ENV{'form.'.$elementname})) {      if (exists($env{'form.'.$elementname})) {
         if (ref($ENV{'form.'.$elementname})) {          if (ref($env{'form.'.$elementname})) {
             @selected_maps = @{$ENV{'form.'.$elementname}};              @selected_maps = @{$env{'form.'.$elementname}};
         } else {          } else {
             @selected_maps = ($ENV{'form.'.$elementname});              @selected_maps = ($env{'form.'.$elementname});
         }          }
     } else {      } else {
         @selected_maps = ('all');          @selected_maps = ('all');
Line 808  sub DisplayClasslist { Line 808  sub DisplayClasslist {
     my @selected_sections = &get_selected_sections();      my @selected_sections = &get_selected_sections();
     if (! @Students) {      if (! @Students) {
         if ($selected_sections[0] eq 'all') {           if ($selected_sections[0] eq 'all') { 
             if (lc($ENV{'form.Status'}) eq 'any') {              if (lc($env{'form.Status'}) eq 'any') {
                 $Str .= '<h2>'.                  $Str .= '<h2>'.
                     &mt('There are no students in the course.').                      &mt('There are no students in the course.').
                     '</h2>';                      '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'active') {              } elsif (lc($env{'form.Status'}) eq 'active') {
                 $Str .= '<h2>'.                  $Str .= '<h2>'.
                 &mt('There are no currently enrolled students in the course.').                  &mt('There are no currently enrolled students in the course.').
                     '</h2>';                      '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'expired') {              } elsif (lc($env{'form.Status'}) eq 'expired') {
                 $Str .= '<h2>'.                  $Str .= '<h2>'.
                     &mt('There are no previously enrolled students in the course.').                      &mt('There are no previously enrolled students in the course.').
                         '</h2>';                          '</h2>';
             }              }
         } else {           } else { 
             my $sections;              my $sections;
             if (lc($ENV{'form.Status'}) eq 'any') {              if (lc($env{'form.Status'}) eq 'any') {
                 $Str .= '<h2>'.                  $Str .= '<h2>'.
                     &mt('There are no students in the selected sections.').                      &mt('There are no students in the selected sections.').
                     '</h2>';                      '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'active') {              } elsif (lc($env{'form.Status'}) eq 'active') {
                 $Str .= '<h2>'.                  $Str .= '<h2>'.
                     &mt('There are no currently enrolled students in the selected sections.').                      &mt('There are no currently enrolled students in the selected sections.').
                     '</h2>';                      '</h2>';
             } elsif (lc($ENV{'form.Status'}) eq 'expired') {              } elsif (lc($env{'form.Status'}) eq 'expired') {
                 $Str .= '<h2>'.                  $Str .= '<h2>'.
                     &mt('There are no previously enrolled students in the selected sections.').                      &mt('There are no previously enrolled students in the selected sections.').
                     '</h2>';                      '</h2>';
Line 872  sub DisplayClasslist { Line 872  sub DisplayClasslist {
             if ($field eq 'fullname' || $field eq 'username') {              if ($field eq 'fullname' || $field eq 'username') {
                 $Str .= '<a href="/adm/statistics?reportSelected=';                  $Str .= '<a href="/adm/statistics?reportSelected=';
                 $Str .= &Apache::lonnet::escape('student_assessment');                  $Str .= &Apache::lonnet::escape('student_assessment');
                 $Str .= '&sort='.&Apache::lonnet::escape($ENV{'form.sort'});                  $Str .= '&sort='.&Apache::lonnet::escape($env{'form.sort'});
                 $Str .= '&SelectedStudent=';                  $Str .= '&SelectedStudent=';
                 $Str .= &Apache::lonnet::escape($sname).'">';                  $Str .= &Apache::lonnet::escape($sname).'">';
                 $Str .= $student->{$field}.'&nbsp';                  $Str .= $student->{$field}.'&nbsp';
Line 964  sub handler { Line 964  sub handler {
     if ($loaderror) { return $loaderror; }      if ($loaderror) { return $loaderror; }
     $loaderror=      $loaderror=
        &Apache::lonnet::overloaderror($r,         &Apache::lonnet::overloaderror($r,
          $ENV{'course.'.$ENV{'request.course.id'}.'.home'});           $env{'course.'.$env{'request.course.id'}.'.home'});
     if ($loaderror) { return $loaderror; }      if ($loaderror) { return $loaderror; }
     #      #
     # Check for access      # Check for access
     if (! &Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {      if (! &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {
         $ENV{'user.error.msg'}=          $env{'user.error.msg'}=
             $r->uri.":vgr:0:0:Cannot view grades for complete course";              $r->uri.":vgr:0:0:Cannot view grades for complete course";
         if (! &Apache::lonnet::allowed('vgr',          if (! &Apache::lonnet::allowed('vgr',
                       $ENV{'request.course.id'}.'/'.$ENV{'request.course.sec'})) {                        $env{'request.course.id'}.'/'.$env{'request.course.sec'})) {
             $ENV{'user.error.msg'}=              $env{'user.error.msg'}=
                 $r->uri.":vgr:0:0:Cannot view grades with given role";                  $r->uri.":vgr:0:0:Cannot view grades with given role";
             return HTTP_NOT_ACCEPTABLE;              return HTTP_NOT_ACCEPTABLE;
         }          }
Line 1014  ENDSTYLE Line 1014  ENDSTYLE
                                             text =>'Statistics',                                              text =>'Statistics',
                                             faq=>139,                                              faq=>139,
                                             bug=>'Statistics and Charts'});                                              bug=>'Statistics and Charts'});
     if (! exists($ENV{'form.reportSelected'}) ||       if (! exists($env{'form.reportSelected'}) || 
         $ENV{'form.reportSelected'} eq '') {          $env{'form.reportSelected'} eq '') {
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,&mt('Statistics Main Page')).                    (undef,&mt('Statistics Main Page')).
                   &CreateMainMenu());                    &CreateMainMenu());
Line 1039  ENDSTYLE Line 1039  ENDSTYLE
         }          }
         #          #
         # Clean out the caches          # Clean out the caches
         if (exists($ENV{'form.ClearCache'})) {          if (exists($env{'form.ClearCache'})) {
             &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'});              &Apache::loncoursedata::delete_caches($env{'requres.course.id'});
         }          }
         #          #
         # Begin form output          # Begin form output
Line 1048  ENDSTYLE Line 1048  ENDSTYLE
         $r->print('method="post" action="/adm/statistics">');          $r->print('method="post" action="/adm/statistics">');
         $r->rflush();          $r->rflush();
         #          #
         my $GoToPage = $ENV{'form.reportSelected'};          my $GoToPage = $env{'form.reportSelected'};
         #          #
         $r->print('<input type="hidden" name="reportSelected" value="'.          $r->print('<input type="hidden" name="reportSelected" value="'.
                   $GoToPage.'">');                    $GoToPage.'">');

Removed from v.1.122  
changed lines
  Added in v.1.123


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>