--- loncom/interface/statistics/lonstudentsubmissions.pm 2011/11/22 01:34:39 1.63.2.3 +++ loncom/interface/statistics/lonstudentsubmissions.pm 2011/11/18 21:08:22 1.64 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstudentsubmissions.pm,v 1.63.2.3 2011/11/22 01:34:39 raeburn Exp $ +# $Id: lonstudentsubmissions.pm,v 1.64 2011/11/18 21:08:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -30,11 +30,11 @@ use strict; use Apache::lonnet; use Apache::loncommon(); use Apache::lonhtmlcommon(); +use Apache::lonquickgrades(); use Apache::loncoursedata(); use Apache::lonstatistics; use Apache::lonlocal; use Apache::lonstathelpers; -use Apache::lonmsgdisplay(); use HTML::Entities(); use Time::Local(); use Spreadsheet::WriteExcel(); @@ -62,6 +62,8 @@ sub BuildStudentSubmissionsPage { # &Apache::lonstatistics::PrepareClasslist(); # + $r->print( &Apache::lonhtmlcommon::breadcrumbs('Student Submission Reports')); + &Apache::lonquickgrades::startGradeScreen($r,'statistics'); $r->print(&CreateInterface()); # my @Students = @Apache::lonstatistics::Students; @@ -322,16 +324,25 @@ sub prepare_html_output { my @extra_resp_headers = &get_extra_response_headers($show_named); # # Create the table header - my @student_columns = &get_student_columns($show_named); + my @student_columns; + if ($show_named) { + @student_columns = @Apache::lonstatistics::SelectedStudentData; + if (grep(/^all$/,@student_columns)) { + @student_columns = qw(fullname username domain id section status groups comments); + } + } else { + @student_columns = ('username'); + } + # my %headers; my $student_column_count = scalar(@student_columns); $headers{'problem'} = qq{\ }; - foreach my $field (@student_columns) { - $headers{'student'}.= ''.ucfirst($field).''; + foreach (@student_columns) { + $headers{'student'}.= ''.ucfirst($_).''; } # # we put the headers into the %headers hash - my $total_col = $student_column_count; + my $total_col = scalar(@student_columns); my $nonempty_part_headers = 0; # my %problem_analysis; @@ -828,9 +839,14 @@ sub prepare_excel_output { $worksheet->write($partid_row,0,'Part ID',$format->{'bold'}); $worksheet->write($respid_row,0,'Response ID',$format->{'bold'}); # Student headers - my @StudentColumns = &get_student_columns($show_named); - foreach my $field (@StudentColumns) { - $worksheet->write($header_row,$cols_output++,ucfirst($field), + my @StudentColumns; + if ($show_named) { + @StudentColumns = qw(username domain id section); + } else { + @StudentColumns = qw(username); + } + foreach (@StudentColumns) { + $worksheet->write($header_row,$cols_output++,ucfirst($_), $format->{'bold'}); } # Problem headers @@ -940,12 +956,8 @@ sub prepare_excel_output { my $cols = 0; foreach my $field (@StudentColumns) { if ($show_named) { - my $value = $student->{$field}; - if ($field eq 'comments') { - $value = &Apache::lonmsgdisplay::retrieve_instructor_comments - ($student->{'username'},$student->{'domain'}); - } - $worksheet->write($row,$cols++,$value); + $worksheet->write($row,$cols++, + $student->{$field}); } else { $worksheet->write($row,$cols++, &mt('Anonymized')); @@ -1094,7 +1106,12 @@ sub prepare_csv_output { my @extra_resp_headers = &get_extra_response_headers($show_named); # # Create the table header - my @student_columns = &get_student_columns($show_named); + my @student_columns = ('username','domain','id','section'); + if ($show_named) { + @student_columns = qw(username domain id section); + } else { + @student_columns = qw(username); + } my $student_column_count = scalar(@student_columns); # my %headers; @@ -1107,7 +1124,7 @@ sub prepare_csv_output { # we put the headers into the %headers hash my %problem_analysis; my %start_col; - my $max_column = $student_column_count; + my $max_column = scalar(@student_columns); foreach my $prob (@$problems) { my $symb = $prob->symb(); my %analysis = &Apache::lonstathelpers::get_problem_data($prob->src); @@ -1198,15 +1215,9 @@ sub prepare_csv_output { foreach my $row (@rows) { my $student_row_data = ''; if ($show_named) { - foreach my $field (@student_columns) { - my $value = $student->{$field}; - if ($field eq 'comments') { - $value = &Apache::lonmsgdisplay::retrieve_instructor_comments - ($student->{'username'},$student->{'domain'}); - } - $student_row_data .= '"'.&Apache::loncommon::csv_translate($value).'",'; - } - $student_row_data =~ s/,$//; + $student_row_data = '"'.join('","', + map { $student->{$_}; } + @student_columns).'"'; } else { $student_row_data = '"'.&mt('Anonymized').'"'; } @@ -1265,7 +1276,6 @@ sub CreateInterface { ## ## Environment variable initialization my $Str = ''; - $Str .= &Apache::lonhtmlcommon::breadcrumbs('Student Submission Reports'); $Str .= '
'; $Str .= &Apache::loncommon::start_data_table(); $Str .= &Apache::loncommon::start_data_table_header_row(); @@ -1354,20 +1364,6 @@ sub CreateInterface { return $Str; } -sub get_student_columns { - my ($show_named) = @_; - my @student_columns; - if ($show_named) { - @student_columns = @Apache::lonstatistics::SelectedStudentData; - if (grep(/^all$/,@student_columns)) { - @student_columns = qw(fullname username domain id section status groups comments); - } - } else { - @student_columns = ('username'); - } - return @student_columns; -} - 1; __END__