--- loncom/interface/spreadsheet/classcalc.pm 2004/04/26 14:06:00 1.19 +++ loncom/interface/spreadsheet/classcalc.pm 2006/04/06 20:24:13 1.26 @@ -1,5 +1,5 @@ # -# $Id: classcalc.pm,v 1.19 2004/04/26 14:06:00 matthew Exp $ +# $Id: classcalc.pm,v 1.26 2006/04/06 20:24:13 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -90,10 +90,16 @@ sub html_header { $toprow .= ''.&mt($name).''; $bottomrow .= ''.$selector.''; } + my $status .= ''.&mt('Status: [_1]', + '' + ).''; + return "

\n\n". "".$toprow."\n". "".$bottomrow."\n". - "
\n

"; + "\n".$status."\n". + "

"; } sub get_title { @@ -222,12 +228,12 @@ sub excel_rows { # writes the meat of the spreadsheet to an excel worksheet. Called # by Spreadsheet::outsheet_excel; my $self = shift; - my ($connection,$worksheet,$cols_output,$rows_output) = @_; + my ($connection,$worksheet,$cols_output,$rows_output,$format) = @_; # # Write a header row $cols_output = 0; foreach my $value ('Fullname','Username','Domain','Section','Status','ID') { - $worksheet->write($rows_output,$cols_output++,&mt($value)); + $worksheet->write($rows_output,$cols_output++,&mt($value),$format->{'h4'}); } $rows_output++; # @@ -279,6 +285,8 @@ sub output_options { my $self = shift(); return ({value => 'htmlclasslist', description => 'Student Sheet Links'}, + {value => 'source', + description => 'Show Source'}, {value => 'html', description => 'HTML'}, {value => 'excel', @@ -301,7 +309,7 @@ sub outsheet_htmlclasslist { # # Determine if we should output expire caches links... my $show_expire_link = 0; - if (exists($ENV{'user.role.dc./'.$ENV{'request.role.domain'}.'/'})){ + if (exists($env{'user.role.dc./'.$env{'request.role.domain'}.'/'})){ $show_expire_link = 1; } # @@ -368,6 +376,16 @@ END return; } +sub update_status { + my ($r,$message) = @_; + $r->print(''); + $r->rflush(); + return; +} + sub compute { my $self = shift; my ($r) = @_; @@ -376,19 +394,20 @@ sub compute { $self->initialize_safe_space(); my %c = $self->constants(); my %f = $self->formulas(); + &update_status($r,'Initializing Course Structure'); + &Apache::studentcalc::initialize_package(); my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin ($r,&mt('Spreadsheet Computation Status'), - &mt('Spreadsheet Computation'), scalar(@Students)); - &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state, - &mt('Processing course structure')); - &Apache::studentcalc::initialize_package(); + &mt('Spreadsheet Computation'), scalar(@Students),'inline',undef, + 'sheet','spreadsheet_status'); &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state, &mt('Processing first student')); foreach my $student (@Students) { if ($connection->aborted()) { $self->cleanup(); return; } my $sname = $student->{'username'}.':'.$student->{'domain'}; my $studentsheet = Apache::studentcalc->new - ($student->{'username'},$student->{'domain'},undef); + ($student->{'username'},$student->{'domain'},undef,undef, + $student->{'section'},$student->{'group'} ); if ($connection->aborted()) { $self->cleanup(); return; } my @exportdata = $studentsheet->export_data($r); if ($studentsheet->badcalc()) { @@ -412,11 +431,13 @@ sub compute { 'last student'); } &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); + &update_status($r,'Done computing student sheets'); $r->rflush(); $self->constants(\%c); $self->formulas(\%f); $self->calcsheet(); $self->save() if ($self->need_to_save()); + &update_status($r,'Done!'); } 1;