version 1.11, 2003/05/29 13:39:38
|
version 1.17.2.2, 2003/10/03 15:39:46
|
Line 48 use Apache::Constants qw(:common :http);
|
Line 48 use Apache::Constants qw(:common :http);
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::Spreadsheet; |
use Apache::Spreadsheet; |
|
use Apache::loncoursedata(); |
use HTML::Entities(); |
use HTML::Entities(); |
use Spreadsheet::WriteExcel; |
use Spreadsheet::WriteExcel; |
use GDBM_File; |
use GDBM_File; |
Line 125 sub clear_package {
|
Line 126 sub clear_package {
|
|
|
sub initialize { |
sub initialize { |
&clear_package(); |
&clear_package(); |
|
&Apache::loncoursedata::clear_internal_caches(); |
} |
} |
|
|
######################################################## |
######################################################## |
Line 140 sub initialize {
|
Line 142 sub initialize {
|
######################################################## |
######################################################## |
sub initialize_package { |
sub initialize_package { |
my ($sname,$sdomain) = @_; |
my ($sname,$sdomain) = @_; |
$current_course = $ENV{'request.course.id'}; |
|
$current_name = $sname; |
$current_name = $sname; |
$current_domain = $sdomain; |
$current_domain = $sdomain; |
undef(%courseopt); |
if ($current_course ne $ENV{'request.course.id'}) { |
|
$current_course = $ENV{'request.course.id'}; |
|
undef(%courseopt); |
|
} |
&load_cached_export_rows(); |
&load_cached_export_rows(); |
&load_parameter_caches(); |
&load_parameter_caches(); |
|
&Apache::loncoursedata::clear_internal_caches(); |
} |
} |
|
|
######################################################## |
######################################################## |
Line 245 this user and course.
|
Line 250 this user and course.
|
################################################## |
################################################## |
sub parmval { |
sub parmval { |
my $self = shift; |
my $self = shift; |
my ($what,$symb,$uname,$udom,$csec)=@_; |
my ($what,$symb,$uname,$udom,$csec,$recurse)=@_; |
$uname = $self->{'name'} if (! defined($uname)); |
$uname = $self->{'name'} if (! defined($uname)); |
$udom = $self->{'domain'} if (! defined($udom)); |
$udom = $self->{'domain'} if (! defined($udom)); |
$csec = $self->{'section'} if (! defined($csec)); |
$csec = $self->{'section'} if (! defined($csec)); |
Line 310 sub parmval {
|
Line 315 sub parmval {
|
if ($part eq '') { $part='0'; } |
if ($part eq '') { $part='0'; } |
my $newwhat=$rwhat; |
my $newwhat=$rwhat; |
$newwhat=~s/\Q$space\E/$part/; |
$newwhat=~s/\Q$space\E/$part/; |
my $partgeneral=$self->parmval($newwhat,$symb,$uname,$udom,$csec); |
my $partgeneral=$self->parmval($newwhat,$symb,$uname,$udom,$csec,1); |
if (defined($partgeneral)) { return $partgeneral; } |
if (defined($partgeneral)) { return $partgeneral; } |
} |
} |
|
if ($recurse) { return undef; } |
|
my $pack_def=&Apache::lonnet::packages_tab_default($fn,'resource.'.$what); |
|
if (defined($pack_def)) { return $pack_def; } |
#nothing defined |
#nothing defined |
return ''; |
return ''; |
} |
} |
Line 332 sub get_html_title {
|
Line 340 sub get_html_title {
|
sub get_title { |
sub get_title { |
my $self = shift; |
my $self = shift; |
my @title = (); |
my @title = (); |
if (($self->{'usymb'} eq '_feedback') || |
if (($self->{'symb'} eq '_feedback') || |
($self->{'usymb'} eq '_evaluation') || |
($self->{'symb'} eq '_evaluation') || |
($self->{'usymb'} eq '_discussion') || |
($self->{'symb'} eq '_discussion') || |
($self->{'usymb'} eq '_tutoring')) { |
($self->{'symb'} eq '_tutoring')) { |
my $assess_title = ucfirst($self->{'usymb'}); |
my $assess_title = ucfirst($self->{'symb'}); |
$assess_title =~ s/^_//; |
$assess_title =~ s/^_//; |
push(@title,$assess_title); |
push(@title,$assess_title); |
} else { |
} else { |
Line 369 sub outsheet_html {
|
Line 377 sub outsheet_html {
|
################################### |
################################### |
# Determine table structure |
# Determine table structure |
################################### |
################################### |
|
my $importcolor = '#FFFFFF'; |
|
my $exportcolor = '#FFFFAA'; |
my $num_uneditable = 1; |
my $num_uneditable = 1; |
my $num_left = 52-$num_uneditable; |
my $num_left = 52-$num_uneditable; |
my $tableheader =<<"END"; |
my $tableheader =<<"END"; |
<table border="2"> |
<table border="2"> |
<tr> |
<tr> |
<th colspan="2" rowspan="2"><font size="+2">Assessment</font></th> |
<th colspan="2" rowspan="2"><font size="+2">Assessment</font></th> |
<td bgcolor="#FFDDDD" colspan="$num_uneditable"> </td> |
<td bgcolor="$importcolor" colspan="$num_uneditable"> </td> |
<td colspan="$num_left"> |
<td colspan="$num_left"> |
<b><font size="+1">Calculations</font></b></td> |
<b><font size="+1">Calculations</font></b></td> |
</tr><tr> |
</tr><tr> |
Line 383 END
|
Line 393 END
|
my $label_num = 0; |
my $label_num = 0; |
foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ |
foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ |
if ($label_num<$num_uneditable) { |
if ($label_num<$num_uneditable) { |
$tableheader .= '<td bgcolor="#FFDDDD">'; |
$tableheader .= '<td bgcolor="'.$importcolor.'">'; |
} else { |
} else { |
$tableheader .= '<td>'; |
$tableheader .= '<td>'; |
} |
} |
Line 396 END
|
Line 406 END
|
# |
# |
# Print out template row |
# Print out template row |
$r->print('<tr><td>Template</td><td> </td>'. |
$r->print('<tr><td>Template</td><td> </td>'. |
$self->html_template_row($num_uneditable)."</tr>\n"); |
$self->html_template_row($num_uneditable,$importcolor). |
|
"</tr>\n"); |
# |
# |
# Print out summary/export row |
# Print out summary/export row |
$r->print('<tr><td>Export</td><td>0</td>'. |
$r->print('<tr><td>Export</td><td>0</td>'. |
$self->html_export_row()."</tr>\n"); |
$self->html_export_row($exportcolor)."</tr>\n"); |
# |
# |
# Prepare to output rows |
# Prepare to output rows |
$tableheader =<<"END"; |
$tableheader =<<"END"; |
Line 409 END
|
Line 420 END
|
END |
END |
foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ |
foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ |
if ($label_num<$num_uneditable) { |
if ($label_num<$num_uneditable) { |
$tableheader.='<th bgcolor="#FFDDDD">'; |
$tableheader.='<th bgcolor="'.$importcolor.'">'; |
} else { |
} else { |
$tableheader.='<th>'; |
$tableheader.='<th>'; |
} |
} |
Line 422 END
|
Line 433 END
|
$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($rownum)."</tr>\n"); |
$self->assess_html_row($rownum,$importcolor)."</tr>\n"); |
} |
} |
$r->print("</table>\n"); |
$r->print("</table>\n"); |
return; |
return; |
Line 430 END
|
Line 441 END
|
|
|
sub assess_html_row { |
sub assess_html_row { |
my $self = shift(); |
my $self = shift(); |
my ($row) = @_; |
my ($row,$importcolor) = @_; |
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 444 sub assess_html_row {
|
Line 455 sub assess_html_row {
|
} |
} |
foreach my $cell (@rowdata) { |
foreach my $cell (@rowdata) { |
if ($num_cols_output < 1) { |
if ($num_cols_output < 1) { |
$row_html .= '<td bgcolor="#FFDDDD">'; |
$row_html .= '<td bgcolor="'.$importcolor.'">'; |
$row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell, |
$row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell, |
'#FFDDDD'); |
'#FFDDDD'); |
} else { |
} else { |
Line 509 sub excel_rows {
|
Line 520 sub excel_rows {
|
|
|
sub compute { |
sub compute { |
my $self = shift; |
my $self = shift; |
$self->logthis('computing'); |
# $self->logthis('computing'); |
$self->initialize_safe_space(); |
$self->initialize_safe_space(); |
######################################### |
######################################### |
######################################### |
######################################### |
Line 586 sub compute {
|
Line 597 sub compute {
|
while (my ($parm,$value) = each(%parameters)) { |
while (my ($parm,$value) = each(%parameters)) { |
last if ($self->blackout()); |
last if ($self->blackout()); |
next if ($parm !~ /^(parameter_.*)_problemstatus$/); |
next if ($parm !~ /^(parameter_.*)_problemstatus$/); |
next if ($parameters{$1.'_answerdate'}<time); |
if ($parameters{$1.'_answerdate'} ne '' && |
|
$parameters{$1.'_answerdate'} < time) { |
|
next; |
|
} |
if (lc($value) eq 'no') { |
if (lc($value) eq 'no') { |
# We must blackout this sheet |
# We must blackout this sheet |
$self->blackout(1); |
$self->blackout(1); |
Line 612 sub compute {
|
Line 626 sub compute {
|
# |
# |
# Save the export data |
# Save the export data |
$self->save_export_data(); |
$self->save_export_data(); |
|
$self->save() if ($self->need_to_save()); |
return; |
return; |
} |
} |
|
|