Diff for /loncom/interface/lonstatistics.pm between versions 1.81 and 1.88

version 1.81, 2003/09/29 16:20:18 version 1.88, 2003/10/23 15:12:45
Line 881  sub Gather_Student_Data { Line 881  sub Gather_Student_Data {
     my ($r) = @_;      my ($r) = @_;
     my $c = $r->connection();      my $c = $r->connection();
     #      #
       &Apache::loncoursedata::clear_internal_caches();
       #
     my @Sequences = &Apache::lonstatistics::Sequences_with_Assess();      my @Sequences = &Apache::lonstatistics::Sequences_with_Assess();
     #      #
     my @Students = @Apache::lonstatistics::Students;      my @Students = @Apache::lonstatistics::Students;
Line 896  sub Gather_Student_Data { Line 898  sub Gather_Student_Data {
             ($student->{'username'},$student->{'domain'},              ($student->{'username'},$student->{'domain'},
              $ENV{'request.course.id'});               $ENV{'request.course.id'});
         &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,          &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
                                                  'last student');                                                   &mt('last student'));
       }
       &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
       $r->rflush();
   }
   
   ###############################################
   ###############################################
   
   =pod 
   
   =item &Gather_Full_Student_Data()
   
   Ensures all student data is up to date.
   
   =cut
   
   ###############################################
   ###############################################
   sub Gather_Full_Student_Data {
       my ($r) = @_;
       my $c = $r->connection();
       #
       &Apache::loncoursedata::clear_internal_caches();
       #
       my @Students = @Apache::lonstatistics::Students;
       #
       # Open the progress window
       my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
           ($r,&mt('Student Data Compilation Status'),
            &mt('Student Data Compilation Progress'), scalar(@Students));
       #
       while (my $student = shift @Students) {
           return if ($c->aborted());
           my ($status,undef) = &Apache::loncoursedata::ensure_current_full_data
               ($student->{'username'},$student->{'domain'},
                $ENV{'request.course.id'});
           &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
                                                    &mt('last student'));
     }      }
     &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);      &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
     $r->rflush();      $r->rflush();
Line 996  sub DisplayClasslist { Line 1036  sub DisplayClasslist {
 ##############################################  ##############################################
 ##############################################  ##############################################
 sub CreateMainMenu {  sub CreateMainMenu {
     my ($status,$reports,$current)=@_;  
     #      #
     my $Str = '';      # 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 => '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',
                      );
     #      #
     $Str  = '<input type="hidden" name="reportSelected" value="'.$current.'">';      # Create the menu
 #    $Str .= '<table border="0"><tbody><tr>'."\n";      my $Str;
 #    $Str .= '<td align="center"><b>Report:</b></td>'."\n";      $Str .= '<h1>'.&mt('Please select a report to generate').'</h1>';
 #    $Str .= '<td align="center">';      foreach my $reportdata (@reports) {
 #    $Str .= '<select name="reportSelected" '.          $Str .='    <h3><a href="/adm/statistics?reportSelected='.
 #        'onchange="document.Statistics.submit()">'."\n";              $reportdata->{'internal_name'}.'" >'.
 #    foreach (sort(keys(%$reports))) {              $reportdata->{'name'}."</a></h3>\n";
 #        $Str .= '<option value="'.$_.'"';          $Str .= '    '.('&nbsp;'x8).$reportdata->{'short_description'}.
 #        if($current eq $_) {              "\n";
 #            $Str .= ' selected';      }
 #        }      $Str .="</dl>\n";
 #        $Str .= '>'.$reports->{$_}.'</option>'."\n";  
 #    }  
 #    $Str .= '</select></td>'."\n";  
 #    #  
 #    $Str .= '<td>'.('&nbsp;'x30).'</td>';  
 #    $Str .= '<td align="center">'.  
 #        '<input type="submit" name="ClearCache" value="Clear Caches" />'.  
 #            "</td>\n";  
 #    $Str .= '</tr></tbody></table>'."\n";  
 #    $Str .= '<hr>'."\n";  
     #      #
     return $Str;      return $Str;
 }  }
Line 1071  sub handler { Line 1118  sub handler {
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['sort','reportSelected',                                              ['sort','reportSelected',
                                              'SelectedStudent']);                                               'SelectedStudent']);
     if (! exists($ENV{'form.reportSelected'})) {  
         $ENV{'form.reportSelected'} = 'student_assessment';  
     }  
     #      #
     # Give the LON-CAPA page header      # Give the LON-CAPA page header
     $r->print(&Apache::lonhtmlcommon::Title('Course Statistics and Charts'));      $r->print(&Apache::lonhtmlcommon::Title('Course Statistics and Charts'));
     $r->rflush();      $r->rflush();
     #      # 
     if (! &Apache::lonmysql::verify_sql_connection()) {      # Either print out a menu for them or send them to a report
         my $serveradmin = $r->dir_config('lonAdmEMail');      if (! exists($ENV{'form.reportSelected'}) || 
         $r->print(<<END);          $ENV{'form.reportSelected'} eq '') {
 <h2><font color="Red">Unable to connect to database!</font></h2>          $r->print(&CreateMainMenu());
 <p>      } else {
 Please notify the server administrator <b>$serveradmin</b>.      #
 </p><p>          if (! &Apache::lonmysql::verify_sql_connection()) {
 Course Statistics and Charts cannot be retrieved until the database is              my $serveradmin = $r->dir_config('lonAdmEMail');
 restarted.  Your data is intact but cannot be displayed at this time.              $r->print('<h2><font color="Red">'.
 </p>                        &mt('Unable to connect to database!').
 </body>                        '</font></h2>');
 </html>              $r->print('<p>'.
 END                        &mt('Please notify the server administrator ').
         return;                        '<b>'.$serveradmin.'</b></p>');
     }              $r->print('<p>'.
     #                        &mt('Course Statistics and Charts cannot be '.
     # Clean out the caches                            'retrieved until the database is restarted.  '.
     if (exists($ENV{'form.ClearCache'})) {                            'Your data is intact but cannot be displayed '.
         &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'});                            'at this time.').'</p>');
     }              $r->print('</body></html>');
     #              return;
     # Set up the statistics and chart environment          }
     &PrepareClasslist();          #
     &PrepareCourseData($r);          # Clean out the caches
     #          if (exists($ENV{'form.ClearCache'})) {
     # Begin form output              &Apache::loncoursedata::delete_caches($ENV{'requres.course.id'});
     $r->print('<form name="Statistics" ');          }
     $r->print('method="post" action="/adm/statistics">');          #
     #          # Set up the statistics and chart environment
     # Print main menu          &PrepareClasslist();
     my %reports = ('classlist'          => 'Class list',          &PrepareCourseData($r);
                    'problem_statistics' => 'Problem Statistics',          #
                    'student_assessment' => 'Problem Status Chart',          # Begin form output
 #                   'percentage'         => 'Correct-problems Plot',          $r->print('<form name="Statistics" ');
 #                   'option_response'    => 'Option Response Analysis',          $r->print('method="post" action="/adm/statistics">');
 #                   'activitylog'        => 'Activity Log',          $r->rflush();
                    );          #
     $r->print(&CreateMainMenu($ENV{'form.status'},          my $GoToPage = $ENV{'form.reportSelected'};
                               \%reports,$ENV{'form.reportSelected'}));          $r->print('<input type="hidden" name="reportSelected" value="'.
     $r->rflush();                    $GoToPage.'">');
     #          if($GoToPage eq 'activitylog') {
     my $GoToPage = $ENV{'form.reportSelected'};  
     if($GoToPage eq 'activitylog') {  
 #        &Apache::lonproblemstatistics::Activity();  #        &Apache::lonproblemstatistics::Activity();
     } elsif($GoToPage eq 'problem_statistics') {          } elsif($GoToPage eq 'problem_statistics') {
         &Apache::lonproblemstatistics::BuildProblemStatisticsPage($r,$c);              &Apache::lonproblemstatistics::BuildProblemStatisticsPage($r,$c);
     } elsif($GoToPage eq 'option_response') {          } elsif($GoToPage eq 'problem_analysis') {
 #        &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c);              &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c);
     } elsif($GoToPage eq 'student_assessment') {          } elsif($GoToPage eq 'student_assessment') {
         &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);              &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
     } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') {          } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') {
 #        &Apache::lonproblemstatistics::BuildGraphicChart($r,$c);  #        &Apache::lonproblemstatistics::BuildGraphicChart($r,$c);
     } elsif($GoToPage eq 'Correct-problems Plot') {          } elsif($GoToPage eq 'Correct-problems Plot') {
 # &Apache::lonpercentage::BuildPercentageGraph($r,$c);              # &Apache::lonpercentage::BuildPercentageGraph($r,$c);
           }
           #
           $r->print("</form>\n");
     }      }
     #  
     $r->print("</form>\n");  
     $r->print("</body>\n</html>\n");      $r->print("</body>\n</html>\n");
     $r->rflush();      $r->rflush();
     #      #

Removed from v.1.81  
changed lines
  Added in v.1.88


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>