--- loncom/interface/lonstatistics.pm 2010/09/12 17:40:33 1.148.2.5 +++ loncom/interface/lonstatistics.pm 2016/08/14 16:38:05 1.156.2.7 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstatistics.pm,v 1.148.2.5 2010/09/12 17:40:33 raeburn Exp $ +# $Id: lonstatistics.pm,v 1.156.2.7 2016/08/14 16:38:05 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,20 +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) { - $mapurl = '/uploaded/'.$env{'course.'.$cid.'.domain'}.'/'.$env{'course.'.$cid.'.num'}.'/default_1261144274.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; @@ -513,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"; @@ -561,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); @@ -705,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). ''; } @@ -726,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 .= ''; } @@ -764,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.')}, ]}, @@ -781,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', @@ -804,11 +795,10 @@ 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); @@ -820,14 +810,6 @@ 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'}= @@ -845,28 +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)) { - $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'}, @@ -902,9 +862,9 @@ ENDSTYLE # 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.'') @@ -920,18 +880,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') { @@ -952,9 +914,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 @@ -972,11 +934,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',