--- loncom/interface/statistics/lonstudentsubmissions.pm 2004/03/16 16:30:32 1.9 +++ loncom/interface/statistics/lonstudentsubmissions.pm 2004/09/02 21:02:54 1.16 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstudentsubmissions.pm,v 1.9 2004/03/16 16:30:32 matthew Exp $ +# $Id: lonstudentsubmissions.pm,v 1.16 2004/09/02 21:02:54 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -43,14 +43,10 @@ my @SubmitButtons = ({ name => 'PrevProb { name => 'NextProblem', text => 'Next Problem' }, { name => 'break'}, - { name => 'ClearCache', - text => 'Clear Caches' }, - { name => 'updatecaches', - text => 'Update Student Data' }, { name => 'SelectAnother', text => 'Choose a different Problem' }, { name => 'Generate', - text => 'Generate Spreadsheet'}, + text => 'Generate Report'}, ); sub BuildStudentSubmissionsPage { @@ -75,18 +71,8 @@ sub BuildStudentSubmissionsPage { $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(''); + } # - my @Columns = ( 'username','domain','attempt','time', - 'submission','correct', 'grading','awarded','weight', - 'score'); - my $awarded_col = 7; - my $weight_col = 8; + $r->rflush(); + my @Columns; + push(@Columns,'username'); + push(@Columns,'domain'); + push(@Columns,'attempt'); + push(@Columns,'time'); + push(@Columns,'submission'); + if ($ENV{'form.correctans'} eq 'true') { push(@Columns,'correct'); } + push(@Columns,'grading'); + push(@Columns,'awarded'); + my $awarded_col = $#Columns; + push(@Columns,'weight'); + my $weight_col = $#Columns; + push(@Columns,'score'); # # Create excel worksheet my $filename = '/prtspool/'. @@ -209,14 +460,19 @@ sub prepare_excel_output { $worksheet->write_row($rows_output++,0,\@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{'correct'} = $student->{'answer'}; $row{'weight'} = &Apache::lonnet::EXT ('resource.'.$partid.'.weight',$resource->{'symb'}, undef,undef,undef); @@ -237,7 +493,12 @@ sub prepare_excel_output { } $rows_output++; } else { - foreach my $response (@$results) { + for (my $i=0;$i'. &mt('Your Excel spreadsheet.'). '
'."\n"); -} - -sub GetStudentAnswers { - my ($r,$problem,$Students) = @_; - my $c = $r->connection(); - my %Answers; - my ($resource,$partid,$respid) = ($problem->{'resource'}, - $problem->{'part'}, - $problem->{'respid'}); - # Read in the cache (if it exists) before we start timing things. - &Apache::lonstathelpers::ensure_proper_cache($resource->{'symb'}); - # Open progress window - my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin - ($r,'Student Answer Compilation Status', - 'Student Answer Compilation Progress', scalar(@$Students)); + $r->print(''); $r->rflush(); - foreach my $student (@$Students) { - last if ($c->aborted()); - my $sname = $student->{'username'}; - my $sdom = $student->{'domain'}; - my $answer = &Apache::lonstathelpers::analyze_problem_as_student - ($resource,$sname,$sdom,$partid,$respid); - &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state, - &mt('last student')); - $student->{'answer'} = $answer; - } - &Apache::lonstathelpers::write_answer_cache(); - return if ($c->aborted()); - $r->rflush(); - # close progress window - &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); return; } @@ -329,18 +567,29 @@ sub GetStudentAnswers { ######################################################### sub CreateInterface { ## + ## Output Selection + my $OutputSelector = $/.''.$/; + ## ## Environment variable initialization my $Str = ''; $Str .= &Apache::lonhtmlcommon::breadcrumbs (undef,'Student Submission Reports'); + $Str .= ''; $Str .= '
'.&mt('Sections').' | '; - $Str .= ''.&mt('Enrollment Status').' | '; - $Str .= ''; + $Str .= ' | '.&mt('Sections').' | '; + $Str .= ''.&mt('Enrollment Status').' | '; + $Str .= ''.&mt('Output Options').' | '; $Str .= '
---|---|---|---|---|---|
'."\n"; $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); $Str .= ' | '; @@ -349,31 +598,58 @@ sub CreateInterface { $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); $Str .= ''; # - $Str .= ''; + # Render problem checkbox + my $prob_checkbox = ''; + # + # Concise view checkbox + my $concise_view_checkbox = ''.&mt('Output Format: [_1]',$OutputSelector).' |