--- loncom/interface/spreadsheet/classcalc.pm 2003/05/16 20:55:11 1.1
+++ loncom/interface/spreadsheet/classcalc.pm 2003/05/23 21:03:29 1.4
@@ -1,5 +1,5 @@
#
-# $Id: classcalc.pm,v 1.1 2003/05/16 20:55:11 matthew Exp $
+# $Id: classcalc.pm,v 1.4 2003/05/23 21:03:29 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;
}
@@ -98,6 +121,7 @@ sub outsheet_html {
my $num_uneditable = 26;
my $num_left = 52-$num_uneditable;
my $tableheader =<<"END";
+
Course |
@@ -131,6 +155,7 @@ END
#
# Prepare to output rows
$tableheader =<<"END";
+
Row |
student | username | domain |
@@ -163,18 +188,64 @@ END
''.$student->{'status'} .' | '.
$self->html_row($num_uneditable,$rownum)."
\n");
}
- $r->print("
\n");
+ $r->print("
\n");
return;
}
-sub outsheet_csv {
+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_excel {
+sub csv_rows {
+ # writes the meat of the spreadsheet to an excel worksheet. Called
+ # by Spreadsheet::outsheet_excel;
my $self = shift;
- my ($r) = @_;
+ my ($filehandle) = @_;
+ #
+ # Write a header row
+
+ $self->csv_output_row($filehandle,undef,
+ ('fullname','username','domain','section','status'));
+ #
+ # Write each students row
+ foreach my $student ($self->get_classlist()) {
+ 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->csv_output_row($filehandle,$rownum,@studentdata);
+ }
+ return;
}
sub outsheet_recursive_excel {
@@ -182,15 +253,6 @@ sub outsheet_recursive_excel {
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) = @_;