--- loncom/interface/lonstatistics.pm 2008/12/12 10:01:25 1.146
+++ loncom/interface/lonstatistics.pm 2010/12/05 17:27:30 1.148.2.7
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstatistics.pm,v 1.146 2008/12/12 10:01:25 bisitz Exp $
+# $Id: lonstatistics.pm,v 1.148.2.7 2010/12/05 17:27:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -400,7 +400,7 @@ sub StudentDataSelect {
my $Str = "\n";
$Str .= ''."\n";
#
@@ -456,11 +456,27 @@ 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) {
+ my $cdom = $env{'course.'.$cid.'.domain'};
+ if ($cdom =~ /^\w+citest$/) {
+ my $sequence = &Apache::loncommon::get_citest_map($cdom);
+ my $cnum = $env{'course.'.$cid.'.num'};
+ if ($sequence) {
+ $mapurl = '/uploaded/'.$cdom.'/'.$cnum.'/'.$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 +517,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 +572,7 @@ sub SectionSelect {
my $Str = "\n";
$Str .= ''."\n";
#
@@ -585,7 +607,7 @@ sub GroupSelect {
my $Str = "\n";
$Str .= ''."\n";
#
@@ -766,7 +788,19 @@ sub CreateMainMenu {
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',
@@ -781,13 +815,12 @@ sub CreateMainMenu {
linktext => ('Survey Reports'),
linktitle => ('Prepare reports on survey results.')},
]});
+ }
return &Apache::lonhtmlcommon::generate_menu(@reports);
}
-
-
sub handler {
my $r=shift;
my $c = $r->connection();
@@ -817,6 +850,32 @@ 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)) {
+ my $brcrum = [{href=> '/adm/statistics',
+ text=> 'Statistics',}];
+ my $args = {bread_crumbs => $brcrum,
+ bread_crumbs_component => 'Statistics Main Page'};
+ $r->print(&Apache::loncommon::start_page('Course Statistics',undef,$args));
+ $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'},
@@ -861,7 +920,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());
@@ -902,9 +961,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
@@ -922,7 +981,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',