version 1.6, 2003/05/23 14:08:40
|
version 1.11, 2003/05/29 13:39:38
|
Line 123 sub clear_package {
|
Line 123 sub clear_package {
|
undef(%courseopt); |
undef(%courseopt); |
} |
} |
|
|
|
sub initialize { |
|
&clear_package(); |
|
} |
|
|
######################################################## |
######################################################## |
######################################################## |
######################################################## |
|
|
Line 313 sub parmval {
|
Line 317 sub parmval {
|
return ''; |
return ''; |
} |
} |
|
|
|
sub get_html_title { |
|
my $self = shift; |
|
my ($assess_title,$name,$time) = $self->get_title(); |
|
my $title = '<h1>'.$assess_title.'</h1>'. |
|
'<h2>'.$name.', '. |
|
&Apache::loncommon::aboutmewrapper |
|
($self->{'name'}.'@'.$self->{'domain'}, |
|
$self->{'name'},$self->{'domain'}); |
|
$title .= '<h3>'.$time.'</h3>'; |
|
return $title; |
|
} |
|
|
sub get_title { |
sub get_title { |
my $self = shift; |
my $self = shift; |
my $title; |
my @title = (); |
if (($self->{'usymb'} eq '_feedback') || |
if (($self->{'usymb'} eq '_feedback') || |
($self->{'usymb'} eq '_evaluation') || |
($self->{'usymb'} eq '_evaluation') || |
($self->{'usymb'} eq '_discussion') || |
($self->{'usymb'} eq '_discussion') || |
($self->{'usymb'} eq '_tutoring')) { |
($self->{'usymb'} eq '_tutoring')) { |
$title = $self->{'usymb'}; |
my $assess_title = ucfirst($self->{'usymb'}); |
$title =~ s/^_//; |
$assess_title =~ s/^_//; |
$title = '<h1>'.ucfirst($title)."</h1>\n"; |
push(@title,$assess_title); |
} else { |
} else { |
$title = '<h1>'.&Apache::lonnet::gettitle($self->{'symb'})."</h1>\n"; |
push(@title,&Apache::lonnet::gettitle($self->{'symb'})); |
} |
} |
# Look up the users identifying information |
# Look up the users identifying information |
# Get the users information |
# Get the users information |
Line 333 sub get_title {
|
Line 349 sub get_title {
|
my $name = |
my $name = |
join(' ',@userenv{'firstname','middlename','lastname','generation'}); |
join(' ',@userenv{'firstname','middlename','lastname','generation'}); |
$name =~ s/\s+$//; |
$name =~ s/\s+$//; |
$title .= '<h2>'.$name.', '. |
push (@title,$name); |
&Apache::loncommon::aboutmewrapper($self->{'name'}.'@'.$self->{'domain'}, |
push (@title,scalar(localtime(time))); |
$self->{'name'},$self->{'domain'}). |
return @title; |
"</h2>\n"; |
|
$title .= '<h3>'.localtime(time).'</h3>'; |
|
# |
|
return $title; |
|
} |
} |
|
|
sub parent_link { |
sub parent_link { |
Line 405 END
|
Line 417 END
|
} |
} |
# |
# |
my $num_output = 0; |
my $num_output = 0; |
foreach my $rownum ($self->rows()) { |
foreach my $rownum (sort {$a <=> $b} ($self->rows())) { |
if ($num_output++ % 50 == 0) { |
if ($num_output++ % 50 == 0) { |
$r->print("</table>\n".$tableheader); |
$r->print("</table>\n".$tableheader); |
} |
} |
$r->print('<tr><td>'.$rownum.'</td>'. |
$r->print('<tr><td>'.$rownum.'</td>'. |
$self->assess_html_row($num_uneditable,$rownum)."</tr>\n"); |
$self->assess_html_row($rownum)."</tr>\n"); |
} |
} |
$r->print("</table>\n"); |
$r->print("</table>\n"); |
return; |
return; |
Line 418 END
|
Line 430 END
|
|
|
sub assess_html_row { |
sub assess_html_row { |
my $self = shift(); |
my $self = shift(); |
my ($num_uneditable,$row) = @_; |
my ($row) = @_; |
my $requester_is_student = ($ENV{'request.role'} =~ /^st\./); |
|
my $parameter_name = $self->{'formulas'}->{'A'.$row}; |
my $parameter_name = $self->{'formulas'}->{'A'.$row}; |
my @rowdata = $self->get_row($row); |
my @rowdata = $self->get_row($row); |
my $num_cols_output = 0; |
my $num_cols_output = 0; |
Line 432 sub assess_html_row {
|
Line 443 sub assess_html_row {
|
$row_html .= '<td>'.$parameter_name.'</td>'; |
$row_html .= '<td>'.$parameter_name.'</td>'; |
} |
} |
foreach my $cell (@rowdata) { |
foreach my $cell (@rowdata) { |
if ($requester_is_student || |
if ($num_cols_output < 1) { |
$num_cols_output++ < $num_uneditable) { |
$row_html .= '<td bgcolor="#FFDDDD">'; |
$row_html .= '<td bgcolor="#FFDDDD">'; |
$row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell, |
$row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell,'#FFDDDD'); |
'#FFDDDD'); |
} else { |
} else { |
$row_html .= '<td bgcolor="#EOFFDD">'; |
$row_html .= '<td bgcolor="#EOFFDD">'; |
$row_html .= &Apache::Spreadsheet::html_editable_cell($cell,'#E0FFDD'); |
$row_html .= &Apache::Spreadsheet::html_editable_cell($cell, |
} |
'#E0FFDD',1); |
|
} |
$row_html .= '</td>'; |
$row_html .= '</td>'; |
|
$num_cols_output++; |
} |
} |
return $row_html; |
return $row_html; |
} |
} |
|
|
sub outsheet_csv { |
sub csv_rows { |
my $self = shift; |
# writes the meat of the spreadsheet to an excel worksheet. Called |
my ($r)=@_; |
# by Spreadsheet::outsheet_excel; |
} |
my $self = shift; |
|
my ($filehandle) = @_; |
sub outsheet_excel { |
# |
my $self = shift; |
# Write a header row |
my ($r)=@_; |
$self->csv_output_row($filehandle,undef, |
|
('Parameter','Description','Value')); |
|
# |
|
# Write each row |
|
foreach my $rownum (sort {$a <=> $b} ($self->rows())) { |
|
my $parameter_name = $self->{'formulas'}->{'A'.$rownum}; |
|
my $description = ''; |
|
if (exists($nice_parameter_name{$parameter_name})) { |
|
$description = $nice_parameter_name{$parameter_name}; |
|
} |
|
$self->csv_output_row($filehandle,$rownum, |
|
$parameter_name,$description); |
|
} |
|
return; |
} |
} |
|
|
sub display { |
sub excel_rows { |
my $self = shift; |
# writes the meat of the spreadsheet to an excel worksheet. Called |
my ($r) = @_; |
# by Spreadsheet::outsheet_excel; |
$self->compute(); |
my $self = shift; |
$self->outsheet_html($r); |
my ($worksheet,$cols_output,$rows_output) = @_; |
|
# |
|
# Write a header row |
|
$cols_output = 0; |
|
foreach my $value ('Parameter','Description','Value') { |
|
$worksheet->write($rows_output,$cols_output++,$value); |
|
} |
|
$rows_output++; |
|
# |
|
# Write each row |
|
foreach my $rownum (sort {$a <=> $b} ($self->rows())) { |
|
my $parameter_name = $self->{'formulas'}->{'A'.$rownum}; |
|
my $description = ''; |
|
if (exists($nice_parameter_name{$parameter_name})) { |
|
$description = $nice_parameter_name{$parameter_name}; |
|
} |
|
$self->excel_output_row($worksheet,$rownum,$rows_output++, |
|
$parameter_name,$description); |
|
} |
|
return; |
} |
} |
|
|
sub compute { |
sub compute { |
my $self = shift; |
my $self = shift; |
$self->logthis('computing'); |
$self->logthis('computing'); |
$self->initialize_safe_space(); |
$self->initialize_safe_space(); |
|
######################################### |
|
######################################### |
|
### ### |
|
### Retrieve the problem parameters ### |
|
### ### |
|
######################################### |
|
######################################### |
|
my @Mandatory_parameters = ("stores_0_solved", |
|
"stores_0_awarddetail", |
|
"stores_0_awarded", |
|
"timestamp", |
|
"stores_0_tries", |
|
"stores_0_award"); |
# |
# |
# Definitions |
# Definitions |
undef(%nice_parameter_name); |
undef(%nice_parameter_name); |
Line 474 sub compute {
|
Line 532 sub compute {
|
# Get the metadata fields and determine their proper names |
# Get the metadata fields and determine their proper names |
my ($symap,$syid,$srcf)=split(/___/,$self->{'symb'}); |
my ($symap,$syid,$srcf)=split(/___/,$self->{'symb'}); |
my @Metadata = split(/\,/,&Apache::lonnet::metadata($srcf,'keys')); |
my @Metadata = split(/\,/,&Apache::lonnet::metadata($srcf,'keys')); |
foreach my $parm (@Metadata) { |
foreach my $parm (@Mandatory_parameters,@Metadata) { |
next if ($parm !~ /^(resource\.|stores|parameter)_/); |
next if ($parm !~ /^(resource\.|stores|parameter)_/); |
my $cleaned_name = $parm; |
my $cleaned_name = $parm; |
$cleaned_name =~ s/^resource\./stores_/; |
$cleaned_name =~ s/^resource\./stores_/; |
Line 697 Writes the export data for this spreadsh
|
Line 755 Writes the export data for this spreadsh
|
############################################# |
############################################# |
sub save_export_data { |
sub save_export_data { |
my $self = shift; |
my $self = shift; |
|
return if ($self->temporary()); |
my $student = $self->{'name'}.':'.$self->{'domain'}; |
my $student = $self->{'name'}.':'.$self->{'domain'}; |
my $symb = $self->{'symb'}; |
my $symb = $self->{'symb'}; |
if (! exists($Exportrows{$symb}) || |
if (! exists($Exportrows{$symb}) || |