--- loncom/interface/lonstatistics.pm 2009/12/11 00:12:21 1.144.2.1
+++ 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.2.1 2009/12/11 00:12:21 raeburn 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";
#
@@ -456,11 +456,20 @@ sub selected_sequences_with_assessments
return ('Can not open Coursemap');
}
#
- my @sequences = $navmap->retrieveResources(undef,
+ my $mapurl;
+ if (&Apache::loncommon::needs_gci_custom()) {
+ my $cid = $env{'request.course.id'};
+ if ($cid) {
+ $mapurl = '/uploaded/'.$env{'course.'.$cid.'.domain'}.'/'.$env{'course.'.$cid.'.num'}.'/default_1261144274.sequence';
+ }
+ }
+ my @sequences = $navmap->retrieveResources($mapurl,
sub { shift->is_map(); },1,0,1);
- my $toplevelseq = $navmap->getById('0.0');
- if (!grep(/^\Q$toplevelseq\E$/,@sequences)) {
- unshift(@sequences,$toplevelseq);
+ unless (&Apache::loncommon::needs_gci_custom()) {
+ my $toplevelseq = $navmap->getById('0.0');
+ if (!grep(/^\Q$toplevelseq\E$/,@sequences)) {
+ unshift(@sequences,$toplevelseq);
+ }
}
my @sequences_with_assessments;
@@ -501,16 +510,18 @@ sub map_select {
my $form = "\n";
$form .= ''."\n";
- #
- # Put in option for 'all'
- $form .= ' symb.'" ';
- foreach (@selected_maps) {
- if ($seq->symb eq $_) {
- $form .= 'selected ';
- last;
+ if ((&Apache::loncommon::needs_gci_custom()) && (@selected_maps == 1)) {
+ $form .= 'selected ';
+ } else {
+ foreach (@selected_maps) {
+ if ($seq->symb eq $_) {
+ $form .= 'selected ';
+ last;
+ }
}
}
$form .= '>'.$seq->compTitle." \n";
@@ -550,7 +565,7 @@ sub SectionSelect {
my $Str = "\n";
$Str .= ''."\n";
#
@@ -585,7 +600,7 @@ sub GroupSelect {
my $Str = "\n";
$Str .= ''."\n";
#
@@ -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 .=' \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',