--- loncom/interface/spreadsheet/classcalc.pm 2003/05/19 14:30:31 1.2 +++ loncom/interface/spreadsheet/classcalc.pm 2003/05/23 19:36:04 1.3 @@ -1,5 +1,5 @@ # -# $Id: classcalc.pm,v 1.2 2003/05/19 14:30:31 matthew Exp $ +# $Id: classcalc.pm,v 1.3 2003/05/23 19:36:04 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -58,6 +58,22 @@ use Time::HiRes; @Apache::classcalc::ISA = ('Apache::Spreadsheet'); +sub html_header { + my $self = shift; + my ($toprow,$bottomrow); + foreach (['Sections','Section selector goes here'], + ['Enrollment Status',&Apache::lonhtmlcommon::StatusOptions(undef,undef,3)], + ['Output Format',&Apache::Spreadsheet::output_selector()]) { + my ($name,$selector) = @{$_}; + $toprow .= ''.$name.''; + $bottomrow .= ''.$selector.''; + } + return "

\n\n". + "".$toprow."\n". + "".$bottomrow."\n". + "
\n

"; +} + sub get_classlist { my $self = shift; # Retrieve the classlist @@ -80,8 +96,15 @@ sub get_classlist { sub get_title { my $self = shift; - my $title = '

'.$self->{'coursedesc'}."

\n"; # Section info should be included + my @title = ($self->{'coursedesc'}, scalar(localtime(time)) ); + return @title; +} + +sub get_html_title { + my $self = shift; + my ($classcalc_title,$time) = $self->get_title(); + my $title = '

'.$classcalc_title."

\n".'

'.$time."

\n"; return $title; } @@ -172,27 +195,46 @@ END sub outsheet_csv { my $self = shift; my ($r) = @_; + $r->print('

csv output is not supported yet

'); } -sub outsheet_excel { + +sub excel_rows { + # writes the meat of the spreadsheet to an excel worksheet. Called + # by Spreadsheet::outsheet_excel; my $self = shift; - my ($r) = @_; + my ($worksheet,$cols_output,$rows_output) = @_; + # + # Write a header row + $cols_output = 0; + foreach my $value ('fullname','username','domain','section','status') { + $worksheet->write($rows_output,$cols_output++,$value); + } + $rows_output++; + # + # Write each students row + foreach my $student ($self->get_classlist()) { + $cols_output = 0; + my $rownum = $self->get_row_number_from_key + ($student->{'username'}.':'.$student->{'domain'}); + $student->{'section'} = 'none' if ($student->{'section'} eq '-1'); + my @studentdata = ($student->{'fullname'}, + $student->{'username'}, + $student->{'domain'}, + $student->{'section'}, + $student->{'status'}); + $self->excel_output_row($worksheet,$rownum,$rows_output++, + @studentdata); + } + return; } + sub outsheet_recursive_excel { my $self = shift; my ($r) = @_; } -sub display { - my $self = shift; - my ($r) = @_; - $self->compute($r); - # display as html/csv/excel/etc.... - $self->outsheet_html($r); - return; -} - sub compute { my $self = shift; my ($r) = @_;