--- loncom/interface/lonstatistics.pm 2008/11/20 14:37:24 1.144 +++ loncom/interface/lonstatistics.pm 2010/09/12 17:40:33 1.148.2.5 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstatistics.pm,v 1.144 2008/11/20 14:37:24 jms Exp $ +# $Id: lonstatistics.pm,v 1.148.2.5 2010/09/12 17:40:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -400,7 +400,7 @@ sub StudentDataSelect { my $Str = "\n"; $Str .= ''."\n"; - # - # Put in option for 'all' - $form .= ' \n"; @@ -550,7 +565,7 @@ sub SectionSelect { my $Str = "\n"; $Str .= ''."\n"; # @@ -714,7 +729,7 @@ sub DisplayClasslist { $Str .= '&sort='.&escape($env{'form.sort'}); $Str .= '&SelectedStudent='; $Str .= &escape($sname).'">'; - $Str .= $student->{$field}.' '; + $Str .= $student->{$field}.' '; $Str .= ''; } elsif ($field eq 'status') { $Str .= &mt($student->{$field}); @@ -738,63 +753,65 @@ sub DisplayClasslist { sub CreateMainMenu { # # 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 reports 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 => - &mt('Display a histogram of student performance in the course.'), - }, -# { internal_name => 'grading_analysis', -# name => &mt('Detailed Grading Analysis'), -# short_description => -# &mt('Display statistics about who graded who.'), -# }, -# { 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', - ); - # - # 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"; + my @reports = ( + {categorytitle => 'Statistics and Analyses', + items => [ + {url => '/adm/statistics?reportSelected=problem_statistics', + permission => 'F', + icon => 'document-open.png', + linktext => ('Overall Problem Statistics'), + linktitle => ('Student performance statistics on all problems.')}, + + {url => '/adm/statistics?reportSelected=problem_analysis', + permission => 'F', + icon => 'edit-find.png', + linktext => ('Detailed Problem Analysis'), + linktitle => ('Detailed statistics and graphs of student performance on problems.')}, + ]}, + {categorytitle => 'Plots', + items => [ + {url => '/adm/statistics?reportSelected=submissiontime_analysis', + permission => 'F', + icon => 'subtimpl.png', + linktext => ('Submission Time Plots'), + linktitle => ('Display and analysis of submission times on assessments.')}, + + {url => '/adm/statistics?reportSelected=correct_problems_plot', + permission => 'F', + icon => 'coprplot.png', + linktext => ('Correct Problems Plot'), + linktitle => ('Display a histogram of student performance in the course.')}, + ]}); + if (&Apache::loncommon::needs_gci_custom()) { + push(@reports, + {categorytitle => 'Reports', + items => [ + {url => '/adm/statistics?reportSelected=student_submission_reports', + permission => 'F', + icon => 'edit-copy.png', + linktext => ('Student Submission Reports'), + linktitle => ('Prepare reports of student submissions.')}, + ]}); + } else { + push(@reports, + {categorytitle => 'Reports', + items => [ + {url => '/adm/statistics?reportSelected=student_submission_reports', + permission => 'F', + icon => 'edit-copy.png', + linktext => ('Student Submission Reports'), + linktitle => ('Prepare reports of student submissions.')}, + + {url => '/adm/statistics?reportSelected=survey_reports', + permission => 'F', + icon => 'docs.png', + linktext => ('Survey Reports'), + linktitle => ('Prepare reports on survey results.')}, + ]}); } - $Str .="\n"; - # - return $Str; + +return &Apache::lonhtmlcommon::generate_menu(@reports); + } @@ -828,6 +845,28 @@ sub handler { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; if ($r->header_only) { return OK; } + my $gcicustom = &Apache::loncommon::needs_gci_custom(); + if ($gcicustom) { + my $now = time; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $courseopt=&Apache::lonnet::get_courseresdata($cnum,$cdom); + my $duedate = $courseopt->{$env{'request.course.id'}.'.0.duedate'}; + if ((!$duedate) || ($duedate > $now)) { + $r->print(&Apache::loncommon::start_page("Course Statistics")); + $r->print('

'.&mt('Display of statistics').'

'); + if ($duedate > $now) { + $r->print('

'.&mt('Aggregate test performance data will be available after the Concept Test end date: [_1].', + &Apache::lonlocal::locallocaltime($duedate)).'

'); + } else { + $r->print('

'. + &mt('Aggregate test performance data unavailable without definition of an end date for the Concept Test.').'

'); + } + $r->print(&Apache::loncommon::end_page()); + return OK; + } + } + # # Extract form elements from query string &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, @@ -872,7 +911,7 @@ ENDSTYLE .'

'); $r->print('

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

'); $r->print(&Apache::loncommon::end_page()); @@ -913,9 +952,9 @@ ENDSTYLE &Apache::lonsubmissiontimeanalysis::BuildSubmissionTimePage($r,$c); } elsif($GoToPage eq 'student_submission_reports') { &Apache::lonhtmlcommon::add_breadcrumb - ({href=> - '/adm/statistics?reportselected=student_submission_reports', - text=>'Student Submission Reports'}); + ({href=> + '/adm/statistics?reportselected=student_submission_reports', + text=>'Student Submission Reports'}); &Apache::lonstudentsubmissions::BuildStudentSubmissionsPage($r,$c); } elsif($GoToPage eq 'survey_reports') { &Apache::lonhtmlcommon::add_breadcrumb @@ -933,7 +972,11 @@ ENDSTYLE &Apache::lonhtmlcommon::add_breadcrumb ({href=>'/adm/statistics?reportselected=student_assessment', text=>'Chart'}); - &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c); + if ($gcicustom) { + $r->print(&mt('Only aggregate performance data are available for Concept Tests.')); + } else { + &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c); + } } elsif($GoToPage eq 'grading_analysis') { &Apache::lonhtmlcommon::add_breadcrumb ({href=>'/adm/statistics?reportselected=grading_anaylsis',