--- loncom/interface/lonstatistics.pm 2003/09/29 18:32:38 1.82 +++ loncom/interface/lonstatistics.pm 2004/03/01 16:39:19 1.100 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstatistics.pm,v 1.82 2003/09/29 18:32:38 matthew Exp $ +# $Id: lonstatistics.pm,v 1.100 2004/03/01 16:39:19 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,20 +38,6 @@ lonstatistics 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::lonproblemstatistics; - use Apache::lonstudentassessment; - use Apache::lonpercentage; - use Apache::lonmysql; =over 4 =cut @@ -71,20 +57,26 @@ use vars qw( $top_map @Sequences @SelectedMaps - @Assessments); + @Assessments + $enrollment_status); use Apache::lonnet(); use Apache::lonhomework; use Apache::loncommon; use Apache::loncoursedata; use Apache::lonhtmlcommon; +use Apache::lonmysql; +use Apache::lonlocal; +use Time::HiRes; +# +# Statistics Packages use Apache::lonproblemanalysis(); +use Apache::lonsubmissiontimeanalysis(); +use Apache::loncorrectproblemplot(); use Apache::lonproblemstatistics(); use Apache::lonstudentassessment(); use Apache::lonpercentage; -use Apache::lonmysql; -use Apache::lonlocal; -use Time::HiRes; +use Apache::lonstudentsubmissions(); ####################################################### ####################################################### @@ -245,8 +237,8 @@ sub PrepareClasslist { } # # get the status requested - my $requested_status = 'Active'; - $requested_status = $ENV{'form.Status'} if (exists($ENV{'form.Status'})); + $enrollment_status = 'Active'; + $enrollment_status = $ENV{'form.Status'} if (exists($ENV{'form.Status'})); # # Process the classlist while (my ($student,$student_data) = each (%$classlist)) { @@ -276,8 +268,8 @@ sub PrepareClasslist { foreach my $sect (@SelectedSections) { if ( (($sect eq 'all') || ($section eq $sect)) && - (($studenthash->{'status'} eq $requested_status) || - ($requested_status eq 'Any')) + (($studenthash->{'status'} eq $enrollment_status) || + ($enrollment_status eq 'Any')) ){ push (@Students,$studenthash); last; @@ -514,20 +506,6 @@ sub PrepareCourseData { $top_map = $top if (ref($top)); @Sequences = @{$sequences} if (ref($sequences) 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; } @@ -881,6 +859,8 @@ sub Gather_Student_Data { my ($r) = @_; my $c = $r->connection(); # + &Apache::loncoursedata::clear_internal_caches(); + # my @Sequences = &Apache::lonstatistics::Sequences_with_Assess(); # my @Students = @Apache::lonstatistics::Students; @@ -896,7 +876,7 @@ sub Gather_Student_Data { ($student->{'username'},$student->{'domain'}, $ENV{'request.course.id'}); &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state, - 'last student'); + &mt('last student')); } &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); $r->rflush(); @@ -919,6 +899,8 @@ sub Gather_Full_Student_Data { my ($r) = @_; my $c = $r->connection(); # + &Apache::loncoursedata::clear_internal_caches(); + # my @Students = @Apache::lonstatistics::Students; # # Open the progress window @@ -1032,31 +1014,53 @@ sub DisplayClasslist { ############################################## ############################################## sub CreateMainMenu { - my ($status,$reports,$current)=@_; # - my $Str = ''; + # Define menu data + my @reports = ({ internal_name => 'problem_statistics', + name => &mt('Overall Problem Statistics'), + short_description => + &mt('Student performance statistics on all problems.'), + }, + { internal_name => 'problem_analysis', + name => &mt('Detailed Problem Analysis'), + short_description => + &mt('Detailed statistics and graphs of student performance on problems.'), + }, + { internal_name => 'submissiontime_analysis', + name => &mt('Submission Time Plots'), + short_description => + &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', +# name => &mt('Problem Status Chart'), +# short_description => +# &mt('Brief view of each students performance in course.'), +# }, + # 'percentage' => 'Correct-problems Plot', + # 'activitylog' => 'Activity Log', + ); # - $Str = ''; -# $Str .= '
Report: | '."\n"; -# $Str .= ''; -# $Str .= ' | '."\n"; -# # -# $Str .= ''.(' 'x30).' | '; -# $Str .= ''. -# ''. -# " | \n"; -# $Str .= '
-Please notify the server administrator $serveradmin. -
-Course Statistics and Charts cannot be retrieved until the database is -restarted. Your data is intact but cannot be displayed at this time. -
-