Diff for /loncom/interface/statistics/lonstudentassessment.pm between versions 1.67 and 1.74

version 1.67, 2003/09/10 15:06:34 version 1.74, 2003/11/11 22:14:28
Line 138  Inputs: Line 138  Inputs:
 #######################################################  #######################################################
 sub BuildStudentAssessmentPage {  sub BuildStudentAssessmentPage {
     my ($r,$c)=@_;      my ($r,$c)=@_;
       #
     undef($Statistics);      undef($Statistics);
     undef($show_links);      undef($show_links);
     undef($output_mode);      undef($output_mode);
Line 146  sub BuildStudentAssessmentPage { Line 146  sub BuildStudentAssessmentPage {
     undef($base);      undef($base);
     undef($datadescription);      undef($datadescription);
     undef($single_student_mode);      undef($single_student_mode);
       #
       my %Saveable_Parameters = ('Status' => 'scalar',
                                  'chartoutputmode' => 'scalar',
                                  'chartoutputdata' => 'scalar',
                                  'Section' => 'array',
                                  'StudentData' => 'array',
                                  'Maps' => 'array');
       &Apache::loncommon::store_course_settings('chart',\%Saveable_Parameters);
       &Apache::loncommon::restore_course_settings('chart',\%Saveable_Parameters);
       #
       &Apache::lonstatistics::PrepareClasslist();
       #
     $single_student_mode = 0;      $single_student_mode = 0;
     $single_student_mode = 1 if ($ENV{'form.SelectedStudent'});      $single_student_mode = 1 if ($ENV{'form.SelectedStudent'});
     if ($ENV{'form.selectstudent'}) {      if ($ENV{'form.selectstudent'}) {
Line 200  sub BuildStudentAssessmentPage { Line 211  sub BuildStudentAssessmentPage {
     #       are immediately reflected in the chart.      #       are immediately reflected in the chart.
     &Apache::lonnet::clear_EXT_cache_status();      &Apache::lonnet::clear_EXT_cache_status();
     #      #
       # Clean out loncoursedata's package data, just to be safe.
       &Apache::loncoursedata::clear_internal_caches();
       #
     # Call the initialize routine selected above      # Call the initialize routine selected above
     $initialize->($r);      $initialize->($r);
     foreach my $student (@Students) {      foreach my $student (@Students) {
Line 416  sub OutputDescriptions { Line 430  sub OutputDescriptions {
 sub CreateAndParseOutputSelector {  sub CreateAndParseOutputSelector {
     my $Str = '';      my $Str = '';
     my $elementname = 'chartoutputmode';      my $elementname = 'chartoutputmode';
       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                               [$elementname]);
     #      #
     # Format for output options is 'mode, restrictions';      # Format for output options is 'mode, restrictions';
     my $selected = 'html, without links';      my $selected = 'html, without links';
Line 453  sub CreateAndParseOutputSelector { Line 469  sub CreateAndParseOutputSelector {
 ##  ##
 my @OutputDataOptions =  my @OutputDataOptions =
     (      (
      { name  => 'Scores',       { name  => 'Scores Summary',
        base  => 'scores',  
        value => 'scores',  
        shortdesc => 'Score on each Problem Part',  
        longdesc =>'The students score on each problem part, computed as'.  
            'the part weight * part awarded',  
        },  
      { name  => 'Scores Sum',  
        base  => 'scores',  
        value => 'sum only',  
        shortdesc => 'Sum of Scores on each Problem Part',  
        longdesc =>'The total of the scores of the student on each problem'.  
            ' part in the sequences or folders selected.',  
        },  
      { name  => 'Scores Sum & Maximums',  
        base  => 'scores',         base  => 'scores',
        value => 'sum and total',         value => 'sum and total',
        shortdesc => 'Total Score and Maximum Possible for each '.         shortdesc => 'Total Score and Maximum Possible for each '.
Line 475  my @OutputDataOptions = Line 477  my @OutputDataOptions =
        longdesc => 'The score of each student as well as the '.         longdesc => 'The score of each student as well as the '.
            ' maximum possible on each Sequence or Folder.',             ' maximum possible on each Sequence or Folder.',
        },         },
      { name  => 'Scores Summary Table Only',       { name  => 'Scores Per Problem',
        base  => 'scores',         base  => 'scores',
        value => 'final table scores',         value => 'scores',
        shortdesc => 'Summary of Scores',         shortdesc => 'Score on each Problem Part',
        longdesc  => 'The average score on each sequence or folder for the '.         longdesc =>'The students score on each problem part, computed as'.
            'selected students.',             'the part weight * part awarded',
        },         },
   #     { name  => 'Scores Sum',
   #       base  => 'scores',
   #       value => 'sum only',
   #       shortdesc => 'Sum of Scores on each Problem Part',
   #       longdesc =>'The total of the scores of the student on each problem'.
   #           ' part in the sequences or folders selected.',
   #       },
   #     { name  => 'Scores Summary Table Only',
   #       base  => 'scores',
   #       value => 'final table scores',
   #       shortdesc => 'Summary of Scores',
   #       longdesc  => 'The average score on each sequence or folder for the '.
   #           'selected students.',
   #       },
      { name  =>'Tries',       { name  =>'Tries',
        base  =>'tries',         base  =>'tries',
        value => 'tries',         value => 'tries',
Line 490  my @OutputDataOptions = Line 506  my @OutputDataOptions =
        },         },
      { name  =>'Parts Correct',       { name  =>'Parts Correct',
        base  =>'tries',         base  =>'tries',
        value => 'parts correct',  
        shortdesc => 'Number of Problem Parts completed successfully.',  
        longdesc => 'The Number of Problem Parts completed successfully'.  
            ' on each sequence or folder.',  
        },  
      { name  =>'Parts Correct & Maximums',  
        base  =>'tries',  
        value => 'parts correct total',         value => 'parts correct total',
        shortdesc => 'Number of Problem Parts completed successfully.',         shortdesc => 'Number of Problem Parts completed successfully.',
        longdesc => 'The Number of Problem Parts completed successfully and '.         longdesc => 'The Number of Problem Parts completed successfully and '.
            'the maximum possible for each student',             'the maximum possible for each student',
        },         },
      { name  => 'Parts Summary Table Only',  #     { name  =>'Parts Correct',
        base  => 'tries',  #       base  =>'tries',
        value => 'final table parts',  #       value => 'parts correct',
        shortdesc => 'Summary of Parts Correct',  #       shortdesc => 'Number of Problem Parts completed successfully.',
        longdesc  => 'A summary table of the average number of problem parts '.  #       longdesc => 'The Number of Problem Parts completed successfully'.
            'students were able to get correct on each sequence.',  #           ' on each sequence or folder.',
        },  #       },
   #     { name  => 'Parts Summary Table Only',
   #       base  => 'tries',
   #       value => 'final table parts',
   #       shortdesc => 'Summary of Parts Correct',
   #       longdesc  => 'A summary table of the average number of problem parts '.
   #           'students were able to get correct on each sequence.',
   #       },
      );       );
   
 sub HTMLifyOutputDataDescriptions {  sub HTMLifyOutputDataDescriptions {
Line 1405  sub StudentTriesOnSequence { Line 1421  sub StudentTriesOnSequence {
                 } elsif ($status eq 'excused') {                  } elsif ($status eq 'excused') {
                     $symbol = 'x';                      $symbol = 'x';
                     $max--;                      $max--;
                 } elsif ($status eq 'correct_by_student' &&                  } elsif (($status eq 'correct_by_scantron' ||
                             $status eq 'correct_by_student') &&
                     exists($resource_data->{'resource.'.$partnum.'.tries'})){                      exists($resource_data->{'resource.'.$partnum.'.tries'})){
                     $tries = $resource_data->{'resource.'.$partnum.'.tries'};                      $tries = $resource_data->{'resource.'.$partnum.'.tries'};
                     if ($tries > 9) {                      if ($tries > 9) {
Line 1518  sub StudentPerformanceOnSequence { Line 1535  sub StudentPerformanceOnSequence {
             $partscore = $weight*$awarded;              $partscore = $weight*$awarded;
             $score += $partscore;              $score += $partscore;
             $symbol = $partscore;               $symbol = $partscore; 
               if (abs($symbol - sprintf("%.0f",$symbol)) < 0.001) {
                   $symbol = sprintf("%.0f",$symbol);
               }
             if (length($symbol) > 1) {              if (length($symbol) > 1) {
                 $symbol = '*';                  $symbol = '*';
             }              }

Removed from v.1.67  
changed lines
  Added in v.1.74


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