Diff for /loncom/interface/lonstatistics.pm between versions 1.89 and 1.97

version 1.89, 2003/10/29 15:22:30 version 1.97, 2004/02/19 20:17:01
Line 38  lonstatistics Line 38  lonstatistics
   
 Main handler for statistics and chart.  Main handler for statistics and chart.
   
 =head1 PACKAGES USED  
   
     use strict;  
     use Apache::Constants qw(:common :http);  
     use Apache::lonnet();  
     use Apache::lonhomework;  
     use Apache::loncommon;  
     use Apache::loncoursedata;  
     use Apache::lonhtmlcommon;  
     use Apache::lonproblemanalysis;  
     use Apache::lonsubmissiontimeanalysis;  
     use Apache::lonproblemstatistics;  
     use Apache::lonstudentassessment;  
     use Apache::lonpercentage;  
     use Apache::lonmysql;  
 =over 4  =over 4
   
 =cut  =cut
Line 72  use vars qw( Line 57  use vars qw(
     $top_map       $top_map 
     @Sequences       @Sequences 
     @SelectedMaps      @SelectedMaps
     @Assessments);      @Assessments
       $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;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
   use Apache::lonmysql;
   use Apache::lonlocal;
   use Time::HiRes;
   #
   # Statistics Packages
 use Apache::lonproblemanalysis();  use Apache::lonproblemanalysis();
 use Apache::lonsubmissiontimeanalysis();  use Apache::lonsubmissiontimeanalysis();
   use Apache::loncorrectproblemplot();
 use Apache::lonproblemstatistics();  use Apache::lonproblemstatistics();
 use Apache::lonstudentassessment();  use Apache::lonstudentassessment();
 use Apache::lonpercentage;  use Apache::lonpercentage;
 use Apache::lonmysql;  use Apache::lonstudentsubmissions();
 use Apache::lonlocal;  
 use Time::HiRes;  
   
 #######################################################  #######################################################
 #######################################################  #######################################################
Line 247  sub PrepareClasslist { Line 237  sub PrepareClasslist {
     }      }
     #      #
     # get the status requested      # get the status requested
     my $requested_status = 'Active';      $enrollment_status = 'Active';
     $requested_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 278  sub PrepareClasslist { Line 268  sub PrepareClasslist {
         foreach my $sect (@SelectedSections) {          foreach my $sect (@SelectedSections) {
             if ( (($sect eq 'all') ||               if ( (($sect eq 'all') || 
                   ($section eq $sect)) &&                    ($section eq $sect)) &&
                  (($studenthash->{'status'} eq $requested_status) ||                    (($studenthash->{'status'} eq $enrollment_status) || 
                   ($requested_status eq 'Any'))                     ($enrollment_status eq 'Any')) 
                  ){                   ){
                 push (@Students,$studenthash);                  push (@Students,$studenthash);
                 last;                  last;
Line 516  sub PrepareCourseData { Line 506  sub PrepareCourseData {
     $top_map = $top if (ref($top));      $top_map = $top if (ref($top));
     @Sequences = @{$sequences} if (ref($sequences) eq 'ARRAY');      @Sequences = @{$sequences} if (ref($sequences) eq 'ARRAY');
     @Assessments = @{$assessments} if (ref($assessments) eq 'ARRAY');      @Assessments = @{$assessments} if (ref($assessments) eq 'ARRAY');
     #  
     # Compute column widths  
     foreach my $seq (@Sequences) {  
         my $name_length = length($seq->{'title'});  
         my $num_parts = $seq->{'num_assess_parts'};  
         #  
         # Use 3 digits for each the sum and total, which means 7 total...  
         my $num_col = $num_parts+7;  
         if ($num_col < $name_length) {  
             $num_col = $name_length;  
         }  
         $seq->{'base_width'} = $name_length;  
         $seq->{'width'} = $num_col;  
     }  
     return;      return;
 }  }
   
Line 1051  sub CreateMainMenu { Line 1027  sub CreateMainMenu {
     &mt('Detailed statistics and graphs of student performance on problems.'),      &mt('Detailed statistics and graphs of student performance on problems.'),
                  },                   },
                    { internal_name => 'submissiontime_analysis',                     { internal_name => 'submissiontime_analysis',
                      name => &mt('Submission Time Analysis'),                       name => &mt('Submission Time Plots'),
                      short_description =>                        short_description => 
     &mt('Display and analysis of submission times on assessments.'),      &mt('Display and analysis of submission times on assessments.'),
                  },                   },
                      { internal_name => 'student_submission_reports',
                        name => &mt('Student Submission Reports'),
                        short_description => 
       &mt('Prepare Excel spreadsheets of student submissions.'),
                    },
                      { internal_name => 'correct_problems_plot',
                        name => &mt('Correct Problems Plot'),
                        short_description => 
       &mt('Display a histogram of student performance in the course.'),
                    },
 #                   { internal_name => 'student_assessment',  #                   { internal_name => 'student_assessment',
 #                     name => &mt('Problem Status Chart'),  #                     name => &mt('Problem Status Chart'),
 #                     short_description =>   #                     short_description => 
Line 1105  sub handler { Line 1091  sub handler {
         }          }
     }      }
     #      #
     # Set document type for header only  
     if($r->header_only) {  
         if ($ENV{'browser.mathml'}) {  
             $r->content_type('text/xml');  
         } else {  
             $r->content_type('text/html');  
         }  
         &Apache::loncommon::no_cache($r);  
         $r->send_http_header;  
         return OK;  
     }  
     #  
     # Send the header      # Send the header
     $r->content_type('text/html');      &Apache::loncommon::no_cache($r);
       &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
       if ($r->header_only) { return OK; }
     #      #
     # Extract form elements from query string      # Extract form elements from query string
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
Line 1127  sub handler { Line 1103  sub handler {
                                              'SelectedStudent']);                                               'SelectedStudent']);
     #      #
     # Give the LON-CAPA page header      # Give the LON-CAPA page header
     $r->print(&Apache::lonhtmlcommon::Title('Course Statistics and Charts'));      $r->print('<html><head><title>'.
                 &mt('Course Statistics and Charts').
                 "</title></head>\n".
                 &Apache::loncommon::bodytag('Course Statistics and Charts')."\n".
         &Apache::loncommon::help_open_faq(139).
         &Apache::loncommon::help_open_bug('Statistics and Charts'));
     $r->rflush();      $r->rflush();
     #       # 
     # Either print out a menu for them or send them to a report      # Either print out a menu for them or send them to a report
Line 1158  sub handler { Line 1139  sub handler {
             &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'});              &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'});
         }          }
         #          #
         # Set up the statistics and chart environment  
         &PrepareClasslist();  
         &PrepareCourseData($r);  
         #  
         # Begin form output          # Begin form output
         $r->print('<form name="Statistics" ');          $r->print('<form name="Statistics" ');
         $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'};
           #
           # Set up the statistics and chart environment
           &PrepareCourseData($r);
           #
         $r->print('<input type="hidden" name="reportSelected" value="'.          $r->print('<input type="hidden" name="reportSelected" value="'.
                   $GoToPage.'">');                    $GoToPage.'">');
         if($GoToPage eq 'activitylog') {          if($GoToPage eq 'activitylog') {
Line 1178  sub handler { Line 1159  sub handler {
             &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c);              &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c);
         } elsif($GoToPage eq 'submissiontime_analysis') {          } elsif($GoToPage eq 'submissiontime_analysis') {
             &Apache::lonsubmissiontimeanalysis::BuildSubmissionTimePage($r,$c);              &Apache::lonsubmissiontimeanalysis::BuildSubmissionTimePage($r,$c);
           } elsif($GoToPage eq 'student_submission_reports') {
               &Apache::lonstudentsubmissions::BuildStudentSubmissionsPage($r,$c);
           } elsif($GoToPage eq 'correct_problems_plot') {
               &Apache::loncorrectproblemplot::BuildCorrectProblemsPage($r,$c);
         } elsif($GoToPage eq 'student_assessment') {          } elsif($GoToPage eq 'student_assessment') {
             &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);              &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
         } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') {          } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') {

Removed from v.1.89  
changed lines
  Added in v.1.97


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