--- loncom/interface/lonstatistics.pm 2003/09/29 18:32:38 1.82 +++ loncom/interface/lonstatistics.pm 2003/11/11 22:14:28 1.90 @@ -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.90 2003/11/11 22:14:28 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -48,6 +48,7 @@ Main handler for statistics and chart. use Apache::loncoursedata; use Apache::lonhtmlcommon; use Apache::lonproblemanalysis; + use Apache::lonsubmissiontimeanalysis; use Apache::lonproblemstatistics; use Apache::lonstudentassessment; use Apache::lonpercentage; @@ -79,6 +80,7 @@ use Apache::loncommon; use Apache::loncoursedata; use Apache::lonhtmlcommon; use Apache::lonproblemanalysis(); +use Apache::lonsubmissiontimeanalysis(); use Apache::lonproblemstatistics(); use Apache::lonstudentassessment(); use Apache::lonpercentage; @@ -223,6 +225,7 @@ sub PrepareClasslist { @SelectedSections = ($ENV{'form.Section'}); } } + &Apache::lonnet::logthis('@SelectedSections = '.join(',',@SelectedSections)); @SelectedSections = ('all') if (! @SelectedSections); foreach (@SelectedSections) { if ($_ eq 'all') { @@ -881,6 +884,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 +901,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 +924,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 +1039,43 @@ 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 Analysis'), + short_description => + &mt('Display and analysis of submission times on assessments.'), + }, +# { 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 .= ''."\n"; -# $Str .= ''."\n"; -# $Str .= ''."\n"; -# # -# $Str .= ''; -# $Str .= '\n"; -# $Str .= '
Report:'; -# $Str .= ''.(' 'x30).''. -# ''. -# "
'."\n"; -# $Str .= '
'."\n"; + # Create the menu + my $Str; + $Str .= '

'.&mt('Please select a report to generate').'

'; + foreach my $reportdata (@reports) { + $Str .='

'. + $reportdata->{'name'}."

\n"; + $Str .= ' '.(' 'x8).$reportdata->{'short_description'}. + "\n"; + } + $Str .="\n"; # return $Str; } @@ -1107,71 +1126,69 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['sort','reportSelected', 'SelectedStudent']); - if (! exists($ENV{'form.reportSelected'})) { - $ENV{'form.reportSelected'} = 'student_assessment'; - } # # Give the LON-CAPA page header $r->print(&Apache::lonhtmlcommon::Title('Course Statistics and Charts')); $r->rflush(); + # + # Either print out a menu for them or send them to a report + if (! exists($ENV{'form.reportSelected'}) || + $ENV{'form.reportSelected'} eq '') { + $r->print(&CreateMainMenu()); + } else { # - if (! &Apache::lonmysql::verify_sql_connection()) { - my $serveradmin = $r->dir_config('lonAdmEMail'); - $r->print(<Unable to connect to database! -

-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. -

- - -END - return; - } - # - # Clean out the caches - if (exists($ENV{'form.ClearCache'})) { - &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'}); - } - # - # Set up the statistics and chart environment - &PrepareClasslist(); - &PrepareCourseData($r); - # - # Begin form output - $r->print('
print('method="post" action="/adm/statistics">'); - # - # Print main menu - my %reports = ('classlist' => 'Class list', - 'problem_statistics' => 'Problem Statistics', - 'student_assessment' => 'Problem Status Chart', -# 'percentage' => 'Correct-problems Plot', -# 'option_response' => 'Option Response Analysis', -# 'activitylog' => 'Activity Log', - ); - $r->print(&CreateMainMenu($ENV{'form.status'}, - \%reports,$ENV{'form.reportSelected'})); - $r->rflush(); - # - my $GoToPage = $ENV{'form.reportSelected'}; - if($GoToPage eq 'activitylog') { + if (! &Apache::lonmysql::verify_sql_connection()) { + my $serveradmin = $r->dir_config('lonAdmEMail'); + $r->print('

'. + &mt('Unable to connect to database!'). + '

'); + $r->print('

'. + &mt('Please notify the server administrator '). + ''.$serveradmin.'

'); + $r->print('

'. + &mt('Course Statistics and Charts cannot be '. + 'retrieved until the database is restarted. '. + 'Your data is intact but cannot be displayed '. + 'at this time.').'

'); + $r->print(''); + return; + } + # + # Clean out the caches + if (exists($ENV{'form.ClearCache'})) { + &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'}); + } + # + # Begin form output + $r->print('print('method="post" action="/adm/statistics">'); + $r->rflush(); + # + my $GoToPage = $ENV{'form.reportSelected'}; + # + # Set up the statistics and chart environment + &PrepareCourseData($r); + # + $r->print(''); + if($GoToPage eq 'activitylog') { # &Apache::lonproblemstatistics::Activity(); - } elsif($GoToPage eq 'problem_statistics') { - &Apache::lonproblemstatistics::BuildProblemStatisticsPage($r,$c); - } elsif($GoToPage eq 'problem_analysis') { - &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c); - } elsif($GoToPage eq 'student_assessment') { - &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c); - } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') { + } elsif($GoToPage eq 'problem_statistics') { + &Apache::lonproblemstatistics::BuildProblemStatisticsPage($r,$c); + } elsif($GoToPage eq 'problem_analysis') { + &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c); + } elsif($GoToPage eq 'submissiontime_analysis') { + &Apache::lonsubmissiontimeanalysis::BuildSubmissionTimePage($r,$c); + } elsif($GoToPage eq 'student_assessment') { + &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c); + } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') { # &Apache::lonproblemstatistics::BuildGraphicChart($r,$c); - } elsif($GoToPage eq 'Correct-problems Plot') { -# &Apache::lonpercentage::BuildPercentageGraph($r,$c); + } elsif($GoToPage eq 'Correct-problems Plot') { + # &Apache::lonpercentage::BuildPercentageGraph($r,$c); + } + # + $r->print("
\n"); } - # - $r->print("\n"); $r->print("\n\n"); $r->rflush(); #