--- loncom/interface/lonstatistics.pm 2010/12/05 17:27:30 1.148.2.7 +++ loncom/interface/lonstatistics.pm 2016/08/14 16:13:22 1.163 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstatistics.pm,v 1.148.2.7 2010/12/05 17:27:30 raeburn Exp $ +# $Id: lonstatistics.pm,v 1.163 2016/08/14 16:13:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -64,6 +64,7 @@ use Apache::lonpercentage; use Apache::lonstudentsubmissions(); use Apache::lonsurveyreports(); use Apache::longradinganalysis(); +use Apache::lonquickgrades(); use LONCAPA; # @@ -365,7 +366,7 @@ sub section_or_group_text { sub get_students { if (! @Students) { - &PrepareClasslist() + &PrepareClasslist(); } return @Students; } @@ -405,25 +406,25 @@ sub StudentDataSelect { $Str .= 'size="'.$numvisible.'" >'."\n"; # # Deal with 'all' - $Str .= ' \n"; } $Str .= "\n"; return $Str; @@ -456,27 +457,11 @@ sub selected_sequences_with_assessments return ('Can not open Coursemap'); } # - 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, + my @sequences = $navmap->retrieveResources(undef, sub { shift->is_map(); },1,0,1); - unless (&Apache::loncommon::needs_gci_custom()) { - my $toplevelseq = $navmap->getById('0.0'); - if (!grep(/^\Q$toplevelseq\E$/,@sequences)) { - unshift(@sequences,$toplevelseq); - } + my $toplevelseq = $navmap->getById('0.0'); + if (!grep(/^\Q$toplevelseq\E$/,@sequences)) { + unshift(@sequences,$toplevelseq); } my @sequences_with_assessments; @@ -520,15 +505,13 @@ sub map_select { $form .= 'multiple="multiple" '; } $form .= 'size="'.$numvisible.'" >'."\n"; - unless (&Apache::loncommon::needs_gci_custom()) { - # - # Put in option for 'all' - $form .= ' \n"; @@ -568,6 +547,11 @@ sub SectionSelect { &PrepareClasslist() } # + # Make sure course's student table is up to date + if (@Sections) { + &Apache::loncoursedata::ensure_current_sections(); + } + # # Build the form element my $Str = "\n"; $Str .= ''; $r->print($Str); @@ -712,13 +704,13 @@ sub DisplayClasslist { } $Str .= '

'.&mt('Select One Student').'

' - .'

'.&mt("Click on a student's name or username to view their chart").'

' + .'

'.&mt("Click on a student's name or username to view their chart.").'

' .&Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row(); foreach my $field (@Fields) { $Str .= ''.&mt($field). ''; } @@ -733,15 +725,19 @@ sub DisplayClasslist { if ($field eq 'fullname' || $field eq 'username') { $Str .= ''; - $Str .= $student->{$field}.' '; + $Str .= $student->{$field}; $Str .= ''; } elsif ($field eq 'status') { $Str .= &mt($student->{$field}); } else { - $Str .= $student->{$field}; + if ($student->{$field} eq 'none') { + $Str .= &mt('none') + } else { + $Str .= $student->{$field}; + } } $Str .= ''; } @@ -771,7 +767,7 @@ sub CreateMainMenu { {url => '/adm/statistics?reportSelected=problem_analysis', permission => 'F', - icon => 'edit-find.png', + icon => 'prob_ana.png', linktext => ('Detailed Problem Analysis'), linktitle => ('Detailed statistics and graphs of student performance on problems.')}, ]}, @@ -788,19 +784,7 @@ 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', @@ -811,28 +795,21 @@ sub CreateMainMenu { {url => '/adm/statistics?reportSelected=survey_reports', permission => 'F', - icon => 'docs.png', + icon => 'survey_rep.png', linktext => ('Survey Reports'), linktitle => ('Prepare reports on survey results.')}, ]}); - } return &Apache::lonhtmlcommon::generate_menu(@reports); } + + sub handler { my $r=shift; my $c = $r->connection(); # - # Check for overloading - my $loaderror=&Apache::lonnet::overloaderror($r); - if ($loaderror) { return $loaderror; } - $loaderror= - &Apache::lonnet::overloaderror($r, - $env{'course.'.$env{'request.course.id'}.'.home'}); - if ($loaderror) { return $loaderror; } - # # Check for access if (! &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) { $env{'user.error.msg'}= @@ -850,32 +827,6 @@ 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'}, @@ -905,15 +856,16 @@ ENDSTYLE bug=>'Statistics and Charts'}); if (! exists($env{'form.reportSelected'}) || $env{'form.reportSelected'} eq '') { - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Statistics Main Page'). - &CreateMainMenu()); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Statistics Main Page')); + &Apache::lonquickgrades::startGradeScreen($r,'statistics'); + $r->print(&CreateMainMenu()); } else { # if (! &Apache::lonmysql::verify_sql_connection()) { my $serveradmin = $r->dir_config('lonAdmEMail'); - $r->print('

'. + $r->print('

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

'); + '

'); $r->print('

' .&mt('Please notify the server administrator [_1]', ,''.$serveradmin.'') @@ -929,18 +881,20 @@ ENDSTYLE # # Clean out the caches if (exists($env{'form.ClearCache'})) { - &Apache::loncoursedata::delete_caches($env{'requres.course.id'}); + &Apache::loncoursedata::delete_caches($env{'request.course.id'}); } # + my $GoToPage = $env{'form.reportSelected'}; + # # Begin form output $r->print('

print('onsubmit="return checkanon();" '); + } $r->print('method="post" action="/adm/statistics">'); $r->rflush(); - # - my $GoToPage = $env{'form.reportSelected'}; - # $r->print(''); + $GoToPage.'" />'); if($GoToPage eq 'activitylog') { # &Apache::lonproblemstatistics::Activity(); } elsif($GoToPage eq 'problem_statistics') { @@ -961,9 +915,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 @@ -981,11 +935,7 @@ ENDSTYLE &Apache::lonhtmlcommon::add_breadcrumb ({href=>'/adm/statistics?reportselected=student_assessment', text=>'Chart'}); - if ($gcicustom) { - $r->print(&mt('Only aggregate performance data are available for Concept Tests.')); - } else { - &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c); - } + &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c); } elsif($GoToPage eq 'grading_analysis') { &Apache::lonhtmlcommon::add_breadcrumb ({href=>'/adm/statistics?reportselected=grading_anaylsis', @@ -995,6 +945,7 @@ ENDSTYLE # $r->print("
\n"); } + &Apache::lonquickgrades::endGradeScreen($r); $r->print(&Apache::loncommon::end_page()); $r->rflush(); #