--- 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;
}