--- loncom/interface/spreadsheet/classcalc.pm 2003/05/27 14:52:45 1.5
+++ loncom/interface/spreadsheet/classcalc.pm 2003/06/23 16:06:11 1.9
@@ -1,5 +1,5 @@
#
-# $Id: classcalc.pm,v 1.5 2003/05/27 14:52:45 matthew Exp $
+# $Id: classcalc.pm,v 1.9 2003/06/23 16:06:11 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -59,6 +59,18 @@ use Time::HiRes;
@Apache::classcalc::ISA = ('Apache::Spreadsheet');
+##
+## Package variable
+##
+
+my @Students;
+
+sub initialize {
+ &Apache::lonstatistics::clear_classlist_variables();
+ @Students = &Apache::lonstatistics::get_students();
+ return;
+}
+
sub html_header {
my $self = shift;
my ($toprow,$bottomrow);
@@ -76,12 +88,6 @@ sub html_header {
"\n
";
}
-sub get_classlist {
- my $self = shift;
- # Retrieve the classlist and return it
- return &Apache::lonstatistics::get_students();
-}
-
sub get_title {
my $self = shift;
# Section info should be included
@@ -159,7 +165,7 @@ END
}
#
my $num_output = 0;
- foreach my $student ($self->get_classlist()) {
+ foreach my $student (@Students) {
if ($num_output++ % 50 == 0) {
$r->print("\n".$tableheader);
}
@@ -169,8 +175,8 @@ END
'&sdomain='.$student->{'domain'}.'">';
$student->{'section'} = 'none' if ($student->{'section'} eq '-1');
$r->print(''.''.$rownum.' | '.
- ''.$link.$student->{'fullname'}.' | '.
- ''.$student->{'username'}.' | '.
+ ''.$student->{'fullname'}.' | '.
+ ''.$link.$student->{'username'}.' | '.
''.$student->{'domain'} .' | '.
''.$student->{'section'} .' | '.
''.$student->{'status'} .' | '.
@@ -194,7 +200,7 @@ sub excel_rows {
$rows_output++;
#
# Write each students row
- foreach my $student ($self->get_classlist()) {
+ foreach my $student (@Students) {
$cols_output = 0;
my $rownum = $self->get_row_number_from_key
($student->{'username'}.':'.$student->{'domain'});
@@ -222,7 +228,7 @@ sub csv_rows {
('fullname','username','domain','section','status'));
#
# Write each students row
- foreach my $student ($self->get_classlist()) {
+ foreach my $student (@Students) {
my $rownum = $self->get_row_number_from_key
($student->{'username'}.':'.$student->{'domain'});
$student->{'section'} = 'none' if ($student->{'section'} eq '-1');
@@ -247,12 +253,15 @@ sub compute {
$self->initialize_safe_space();
my %c = $self->constants();
my %f = $self->formulas();
- my @Students = $self->get_classlist();
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
($r,'Spreadsheet Computation Status',
'Spreadsheet Computation', scalar(@Students));
+ &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,
+ 'Processing course structure');
&Apache::studentcalc::initialize_package();
- foreach my $student ($self->get_classlist()) {
+ &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,
+ 'Processing first student');
+ foreach my $student (@Students) {
my $sname = $student->{'username'}.':'.$student->{'domain'};
my $studentsheet = Apache::studentcalc->new
($student->{'username'},$student->{'domain'},undef);
@@ -277,6 +286,7 @@ sub compute {
$self->constants(\%c);
$self->formulas(\%f);
$self->calcsheet();
+ $self->save() if ($self->need_to_save());
}
1;