--- loncom/interface/statistics/lonstudentsubmissions.pm 2004/06/04 21:42:18 1.11 +++ loncom/interface/statistics/lonstudentsubmissions.pm 2004/09/08 14:58:33 1.17 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstudentsubmissions.pm,v 1.11 2004/06/04 21:42:18 matthew Exp $ +# $Id: lonstudentsubmissions.pm,v 1.17 2004/09/08 14:58:33 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -46,7 +46,7 @@ my @SubmitButtons = ({ name => 'PrevProb { name => 'SelectAnother', text => 'Choose a different Problem' }, { name => 'Generate', - text => 'Generate Spreadsheet'}, + text => 'Generate Report'}, ); sub BuildStudentSubmissionsPage { @@ -122,20 +122,30 @@ sub BuildStudentSubmissionsPage { my $resource = $current_problem->{'resource'}; $r->print('
$/|g; + $submission =~ s|\\||g; + $submission = '
'.$submission.'
'; + # + my $Str = ''. + &mt('See the status bar above for student answer computation progress'). + '
'); + # + if ($ENV{'form.correctans'} eq 'true') { + &Apache::lonstathelpers::GetStudentAnswers($r,$problem,$Students, + 'Statistics', + 'stats_status'); + $r->print(''); + } # - $r->print(''); $r->rflush(); - my @Columns = ( 'username','domain','attempt','time', - 'submission','correct', 'grading','awarded','weight', - 'score'); - my $awarded_col = 7; - my $weight_col = 8; + my @Columns; + if (exists($ENV{'form.concise'}) && $ENV{'form.concise'} eq 'true') { + foreach (@DefaultColumns) { + if ($_->{'name'} =~ /^(username|domain|id)$/){ + push(@Columns,$_); + } + } + } else { + @Columns = @DefaultColumns; + } + my ($awarded_col,$weight_col); + for (my $i=0;$i<=$#Columns;$i++) { + if ($Columns[$i]->{'name'} eq 'weight' ) { $weight_col = $i; } + if ($Columns[$i]->{'name'} eq 'awarded') { $awarded_col = $i; } + } # # Create excel worksheet my $filename = '/prtspool/'. @@ -200,17 +669,25 @@ sub prepare_excel_output { $worksheet->write($rows_output++,0,$resource->{'title'},$format->{'h1'}); $worksheet->write($rows_output++,0,$resource->{'src'},$format->{'h3'}); $rows_output++; - $worksheet->write_row($rows_output++,0,\@Columns,$format->{'bold'}); + $worksheet->write_row($rows_output++,0, + [map {$_->{'display'}} @Columns], + $format->{'bold'}); # # Populate the worksheet with the student data + my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin + ($r,'Excel File Compilation Status', + 'Excel File Compilation Progress', + scalar(@$Students),'inline',undef,'Statistics','stats_status'); foreach my $student (@$Students) { last if ($c->aborted()); + my $results = &Apache::loncoursedata::get_response_data_by_student ($student,$resource->{'symb'},$respid); my %row; $row{'username'} = $student->{'username'}; $row{'domain'} = $student->{'domain'}; - $row{'correct'} = $student->{'answer'}; + $row{'id'} = $student->{'id'}; + $row{'correct'} = $student->{'answer'}; $row{'weight'} = &Apache::lonnet::EXT ('resource.'.$partid.'.weight',$resource->{'symb'}, undef,undef,undef); @@ -223,15 +700,21 @@ sub prepare_excel_output { ($rows_output,$weight_col); my $cols_output = 0; foreach my $col (@Columns) { - if (! exists($row{$col})) { + if (! exists($row{$col->{'name'}})) { $cols_output++; next; } - $worksheet->write($rows_output,$cols_output++,$row{$col}); + $worksheet->write($rows_output,$cols_output++, + $row{$col->{'name'}}); } $rows_output++; } else { - foreach my $response (@$results) { + for (my $i=0;$i'; $Str .= '
'.&mt('Sections').' | '; - $Str .= ''.&mt('Enrollment Status').' | '; + $Str .= ''.&mt('Sections').' | '; + $Str .= ''.&mt('Enrollment Status').' | '; + $Str .= ''.&mt('Output Options').' | '; $Str .= '
---|---|---|---|---|
'."\n"; @@ -316,6 +814,47 @@ sub CreateInterface { $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); $Str .= ' | '; # + # Render problem checkbox + my $prob_checkbox = ''; + # + # Concise view checkbox + my $concise_view_checkbox = ''.&mt('Output Format: [_1]',$OutputSelector).'