Diff for /loncom/interface/statistics/lonstudentsubmissions.pm between versions 1.24 and 1.29

version 1.24, 2004/09/23 14:55:24 version 1.29, 2004/12/06 16:53:39
Line 109  sub BuildStudentSubmissionsPage { Line 109  sub BuildStudentSubmissionsPage {
             my $resource = $navmap->getBySymb($symb);              my $resource = $navmap->getBySymb($symb);
             push(@Problems,$resource);              push(@Problems,$resource);
         }          }
         #          # 
         if (! scalar(@Problems) || ! defined($Problems[0])) {          if (! scalar(@Problems) || ! defined($Problems[0])) {
             $r->print('resource is undefined');              $r->print('resource is undefined');
         } else {          } else {
Line 383  sub html_essay_results { Line 383  sub html_essay_results {
     #      #
     my $correct = '';      my $correct = '';
     if ($ENV{'form.correctans'} eq 'true') {      if ($ENV{'form.correctans'} eq 'true') {
         $correct = &Apache::lonstathelpers::analyze_problem_as_student          $correct = &Apache::lonstathelpers::get_student_answer
             ($prob,$student->{'username'},$student->{'domain'},              ($prob,$student->{'username'},$student->{'domain'},
              $partid,$respid);               $partid,$respid);
         $correct = &html_format_sub($correct,'essay');          $correct = &html_format_sub($correct,'essay');
Line 427  sub html_results { Line 427  sub html_results {
     $submission = &html_format_sub($submission,$resptype);      $submission = &html_format_sub($submission,$resptype);
     my $correct = '';      my $correct = '';
     if ($ENV{'form.correctans'} eq 'true') {      if ($ENV{'form.correctans'} eq 'true') {
         $correct = &Apache::lonstathelpers::analyze_problem_as_student          $correct = &Apache::lonstathelpers::get_student_answer
             ($prob,$student->{'username'},$student->{'domain'},              ($prob,$student->{'username'},$student->{'domain'},
              $partid,$respid);               $partid,$respid);
         $correct = &html_format_sub($correct,$resptype);          $correct = &html_format_sub($correct,$resptype);
Line 458  sub html_results { Line 458  sub html_results {
 sub html_format_sub {  sub html_format_sub {
     my ($submission,$resptype) = @_;      my ($submission,$resptype) = @_;
     return '' if (! defined($submission) || $submission eq '');      return '' if (! defined($submission) || $submission eq '');
       $submission = &HTML::Entities::decode($submission);
       $submission =~ s/\\\"/\"/g;
       $submission =~ s/\\\'/\'/g;
     if ($resptype eq 'essay') {      if ($resptype eq 'essay') {
         $submission =~ s|\\r\\n|$/|g;          $submission =~ s|\\r\\n|$/|g;
         $submission = &HTML::Entities::encode($submission,'<>&"');          $submission = &HTML::Entities::encode($submission,'<>&"');
Line 465  sub html_format_sub { Line 468  sub html_format_sub {
         $submission =~ s|\\||g;          $submission =~ s|\\||g;
         $submission = '<p>'.$submission.'</p>';          $submission = '<p>'.$submission.'</p>';
     } elsif ($resptype eq 'radiobutton') {      } elsif ($resptype eq 'radiobutton') {
           $submission = &HTML::Entities::encode($submission,'<>&"');
         $submission =~ s/=([^=])$//;          $submission =~ s/=([^=])$//;
     } elsif ($resptype =~ /^(option|match|rank)$/) {      } elsif ($resptype =~ /^(option|match|rank)$/) {
         $submission =           $submission = 
             '<ul class="sub_studentans">'.              '<ul class="sub_studentans">'.
             '<li>'.join('</li><li>',              '<li>'.join('</li><li>',
                         map {                           map { &HTML::Entities::encode($_,'<>&"'); 
                             &Apache::lonnet::unescape($_) ;                            } map { 
                         } sort split('&',$submission)                                &Apache::lonnet::unescape($_) ;
                             } sort split('&',$submission)
                         ).                          ).
                         '</li><ul>';                          '</li><ul>';
       } else {
           $submission = &HTML::Entities::encode($submission,'<>&"');
     }      }
     return $submission;      return $submission;
 }  }
Line 647  sub prepare_excel_output { Line 654  sub prepare_excel_output {
                 }                  }
             }              }
         }          }
           # Fill in the remaining rows with the students data
           for (my $row = $student_row+1;$row<=$max_row;$row++) {
               my $cols = 0;
               foreach my $field (@StudentColumns) {
                   $worksheet->write($row,$cols++,
                                     $student->{$field});
               }
           }
         $rows_output++;          $rows_output++;
         &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,          &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
                                                  'last student');                                                   'last student');
Line 676  sub write_excel_row { Line 691  sub write_excel_row {
     $submission = &excel_format_response($submission,$resptype);      $submission = &excel_format_response($submission,$resptype);
     $worksheet->write($row,$col++,$submission);      $worksheet->write($row,$col++,$submission);
     if ($ENV{'form.correctans'} eq 'true') {      if ($ENV{'form.correctans'} eq 'true') {
         my $correct = &Apache::lonstathelpers::analyze_problem_as_student          my $correct = &Apache::lonstathelpers::get_student_answer
             ($prob,$student->{'username'},$student->{'domain'},              ($prob,$student->{'username'},$student->{'domain'},
              $partid,$respid);               $partid,$respid);
         $correct =&excel_format_response($correct,$resptype);          $correct =&excel_format_response($correct,$resptype);
Line 709  sub excel_format_response { Line 724  sub excel_format_response {
                            &Apache::lonnet::unescape($_) ;                             &Apache::lonnet::unescape($_) ;
                        } sort split('&',$answer)                         } sort split('&',$answer)
                        );                         );
       } elsif ($responsetype eq 'string') {
           $answer =~ s/\\(n|r)/\n/g;
           $answer =~ s/(\s*$|^\s*)//g;
           $answer =~ s/\\\'/\'/g;
     }      }
     if ($answer =~ m/^=/) {      if ($answer =~ m/^=/) {
         $answer = ' '.$answer;          $answer = ' '.$answer;
Line 806  sub prepare_csv_output { Line 825  sub prepare_csv_output {
     #      #
     # Main loop      # Main loop
     foreach my $student (@$students) {      foreach my $student (@$students) {
           last if ($c->aborted());
         my @rows;          my @rows;
         my $prob_start_idx = 0;          my $prob_start_idx = 0;
         foreach my $prob (@$problems) {          foreach my $prob (@$problems) {
Line 872  sub prepare_csv_output { Line 892  sub prepare_csv_output {
 sub compile_response_data {  sub compile_response_data {
     my ($response,$student,$prob,$partid,$respid) = @_;      my ($response,$student,$prob,$partid,$respid) = @_;
     my @rowdata;      my @rowdata;
     push(@rowdata,$response->[&Apache::loncoursedata::RDs_submission()]);      push(@rowdata,&Apache::lonnet::unescape($response->[&Apache::loncoursedata::RDs_submission()]));
     if ($ENV{'form.correctans'} eq 'true') {      if ($ENV{'form.correctans'} eq 'true') {
         my $correct = &Apache::lonstathelpers::analyze_problem_as_student          my $correct = &Apache::lonstathelpers::get_student_answer
             ($prob,$student->{'username'},$student->{'domain'},              ($prob,$student->{'username'},$student->{'domain'},
              $partid,$respid);               $partid,$respid);
         push(@rowdata,$correct);          push(@rowdata,$correct);

Removed from v.1.24  
changed lines
  Added in v.1.29


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