--- loncom/interface/statistics/lonproblemstatistics.pm 2005/03/01 00:07:21 1.97 +++ loncom/interface/statistics/lonproblemstatistics.pm 2005/03/10 17:33:57 1.101 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonproblemstatistics.pm,v 1.97 2005/03/01 00:07:21 matthew Exp $ +# $Id: lonproblemstatistics.pm,v 1.101 2005/03/10 17:33:57 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -353,17 +353,18 @@ my @Fields = ( # selectable => 'no', # defaultselected => 'yes', # }, -## weight included for research purposes. Commented out most of the time. -# { name => 'weight', -# title => 'weight', -# align => 'right', -# color => '#FFFFFF', -# sortable => 'no', -# graphable => 'no', -# long_title => 'Problem weight (for instructor)', -# selectable => 'no', -# defaultselected => 'yes', -# }, +# +## problem weight for instructor + { name => 'weight', + title => 'weight', + align => 'right', + color => '#FFFFFF', + sortable => 'no', + graphable => 'no', + long_title => 'Problem weight (for instructor)', + selectable => 'yes', + defaultselected => 'yes', + }, ); my @SeqFields = ( @@ -712,6 +713,13 @@ sub BuildProblemStatisticsPage { # it does not slow things down noticably. &Apache::loncoursedata::populate_weight_table(); # + ($navmap,@sequences) = + &Apache::lonstatistics::selected_sequences_with_assessments(); + if (! ref($navmap)) { + $r->print('

'.&mt('A course-wide error occured.').'

'. + '

'.$navmap.'

'); + return; + } if (exists($ENV{'form.Excel'})) { &Excel_output($r); } else { @@ -719,13 +727,6 @@ sub BuildProblemStatisticsPage { &mt('Produce Excel Output').'" />'.' 'x5); $r->rflush(); my $count = 0; - ($navmap,@sequences) = - &Apache::lonstatistics::selected_sequences_with_assessments(); - if (! ref($navmap)) { - $r->print('

'.&mt('A course-wide error occured.').'

'. - '

'.$navmap.'

'); - return; - } foreach my $seq (@sequences) { my @resources = &Apache::lonstathelpers::get_resources($navmap,$seq); @@ -1263,30 +1264,13 @@ sub Excel_output { &compute_all_statistics($r); my $c = $r->connection; return if ($c->aborted()); + # + my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits(); ## ## Create the excel workbook - my $filename = '/prtspool/'. - $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'. - time.'_'.rand(1000000000).'.xls'; - my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits(); - # - # Create sheet - my $excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.$filename); - # - # Check for errors - if (! defined($excel_workbook)) { - $r->log_error("Error creating excel spreadsheet $filename: $!"); - $r->print(&mt("Problems creating new Excel file. ". - "This error has been logged. ". - "Please alert your LON-CAPA administrator.")); - return 0; - } - # - # The excel spreadsheet stores temporary data in files, then put them - # together. If needed we should be able to disable this (memory only). - # The temporary directory must be specified before calling 'addworksheet'. - # File::Temp is used to determine the temporary directory. - $excel_workbook->set_tempdir($Apache::lonnet::tmpdir); + my ($excel_workbook,$filename,$format) = + &Apache::loncommon::create_workbook($r); + return if (! defined($excel_workbook)); # # Add a worksheet my $sheetname = $ENV{'course.'.$ENV{'request.course.id'}.'.description'}; @@ -1295,8 +1279,6 @@ sub Excel_output { } my $excel_sheet = $excel_workbook->addworksheet( &Apache::loncommon::clean_excel_name($sheetname)); - # - my $format = &Apache::loncommon::define_excel_formats($excel_workbook); ## ## Begin creating excel sheet ## @@ -1598,8 +1580,8 @@ sub get_statistics { # &Apache::lonnet::EXT('resource.'.$part.'.maxtries',$symb); # $data->{'hinttries'} = # &Apache::lonnet::EXT('resource.'.$part.'.hinttries',$symb); -# $data->{'weight'} = -# &Apache::lonnet::EXT('resource.'.$part.'.weight',$symb); + $data->{'weight'} = + &Apache::lonnet::EXT('resource.'.$part.'.weight',$symb); # $data->{'resptypes'} = join(',',@{$resource->{'partdata'}->{$part}->{'ResponseTypes'}}); return $data; }