version 1.2, 2003/05/19 14:34:54
|
version 1.4, 2003/05/22 21:16:35
|
Line 48 package Apache::studentcalc;
|
Line 48 package Apache::studentcalc;
|
use strict; |
use strict; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
use Apache::lonnet; |
use Apache::lonnet; |
|
use Apache::loncommon(); |
|
use Apache::loncoursedata(); |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::Spreadsheet; |
use Apache::Spreadsheet(); |
use Apache::assesscalc; |
use Apache::assesscalc(); |
use HTML::Entities(); |
use HTML::Entities(); |
use Spreadsheet::WriteExcel; |
use Spreadsheet::WriteExcel; |
use Time::HiRes; |
use Time::HiRes; |
Line 90 sub clear_package {
|
Line 92 sub clear_package {
|
sub get_title { |
sub get_title { |
my $self = shift; |
my $self = shift; |
my $title = ''; |
my $title = ''; |
$title .= '<h2>Spreadsheet for '. |
my %userenv = &Apache::loncoursedata::GetUserName($self->{'name'}, |
$self->{'name'}.'@'.$self->{'domain'}.'</h2>'; |
$self->{'domain'}); |
|
&Apache::lonnet::logthis('userenv = '.join(' ',%userenv)); |
|
my $name = |
|
join(' ',@userenv{'firstname','middlename','lastname','generation'}); |
|
$name =~ s/\s+$//; |
|
$title .= '<h1>'.$name; |
|
if ($ENV{'user.name'} ne $self->{'name'} && |
|
$ENV{'user.domain'} ne $self->{'domain'}) { |
|
$title .= &Apache::loncommon::aboutmewrapper |
|
($self->{'name'}.'@'.$self->{'domain'}, |
|
$self->{'name'},$self->{'domain'}); |
|
} |
|
$title .= "</h1>\n"; |
|
$title .= '<h2>'.$self->{'coursedesc'}."</h2>\n"; |
|
$title .= '<h3>'.localtime(time).'</h3>'; |
return $title; |
return $title; |
} |
} |
|
|
Line 140 END
|
Line 156 END
|
$label_num++; |
$label_num++; |
} |
} |
$tableheader .="</tr>\n"; |
$tableheader .="</tr>\n"; |
# |
if ($self->blackout()) { |
$r->print($tableheader); |
$r->print('<font color="red" size="+2"><p>'. |
# |
'Some computations are not available at this time.<br />'. |
# Print out template row |
'There are problems whose status you are allowed to view.'. |
$r->print('<tr><td>Template</td><td> </td>'. |
'</font></p>'."\n"); |
$self->html_template_row($num_uneditable)."</tr>\n"); |
} else { |
# |
$r->print($tableheader); |
# Print out summary/export row |
# |
$r->print('<tr><td>Export</td><td>0</td>'. |
# Print out template row |
$self->html_export_row()."</tr>\n"); |
if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) { |
|
$r->print('<tr><td>Template</td><td> </td>'. |
|
$self->html_template_row($num_uneditable)."</tr>\n"); |
|
} |
|
# |
|
# Print out summary/export row |
|
$r->print('<tr><td>Summary</td><td>0</td>'. |
|
$self->html_export_row()."</tr>\n"); |
|
} |
$r->print("</table>\n"); |
$r->print("</table>\n"); |
# |
# |
# Prepare to output rows |
# Prepare to output rows |
$tableheader =<<"END"; |
if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) { |
|
$tableheader =<<"END"; |
</p><p> |
</p><p> |
<table border="2"> |
<table border="2"> |
<tr><th>Row</th><th>Assessment</th> |
<tr><th>Row</th><th>Assessment</th> |
END |
END |
|
} else { |
|
$tableheader =<<"END"; |
|
</p><p> |
|
<table border="2"> |
|
<tr><th> </th><th>Assessment</th> |
|
END |
|
} |
foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ |
foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ |
if ($label_num<$num_uneditable) { |
if ($label_num<$num_uneditable) { |
$tableheader.='<td bgcolor="#FFDDDD">'; |
$tableheader.='<td bgcolor="#FFDDDD">'; |
Line 187 END
|
Line 219 END
|
'<a href="/adm/assesscalc?sname='.$self->{'name'}. |
'<a href="/adm/assesscalc?sname='.$self->{'name'}. |
'&sdomain='.$self->{'domain'}. |
'&sdomain='.$self->{'domain'}. |
'&filename='.$assess_filename. |
'&filename='.$assess_filename. |
'&usymb='.&Apache::lonnet::escape($resource->{'symb'}).'">'. |
'&usymb='.&Apache::lonnet::escape($resource->{'symb'}). |
$resource->{'title'}.'</a><br />'; |
'">'.$resource->{'title'}.'</a><br />'; |
$row_output .= &assess_file_selector($rownum, |
$row_output .= &assess_file_selector($rownum, |
$assess_filename, |
$assess_filename, |
\@AssessFileNames). |
\@AssessFileNames). |
'</td>'; |
'</td>'; |
} else { |
} else { |
$row_output .= '<td><a href="'.$resource->{'src'}.'?symb='. |
$row_output .= '<td><a href="'.$resource->{'src'}.'?symb='. |
&Apache::lonnet::escape($resource->{'symb'}).'>Go To</a>'; |
&Apache::lonnet::escape($resource->{'symb'}). |
|
'">Go To</a>'; |
$row_output .= '</td><td>'.$resource->{'title'}.'</td>'; |
$row_output .= '</td><td>'.$resource->{'title'}.'</td>'; |
} |
} |
$row_output .= $self->html_row($num_uneditable,$rownum). |
if ($self->blackout() && $self->{'blackout_rows'}->{$rownum}>0) { |
"</tr>\n"; |
$row_output .= |
|
'<td colspan="52">Unavailable at this time</td></tr>'."\n"; |
|
} else { |
|
$row_output .= $self->html_row($num_uneditable,$rownum). |
|
"</tr>\n"; |
|
} |
$r->print($row_output); |
$r->print($row_output); |
} |
} |
$r->print("</table>\n"); |
$r->print("</table>\n"); |
Line 340 sub compute {
|
Line 378 sub compute {
|
$assess_filename, |
$assess_filename, |
$resource->{'symb'}); |
$resource->{'symb'}); |
my @exportdata = $assessSheet->export_data(); |
my @exportdata = $assessSheet->export_data(); |
|
if ($assessSheet->blackout()) { |
|
$self->blackout(1); |
|
$self->{'blackout_rows'}->{$rownum} = 1; |
|
} |
# |
# |
# Be sure not to disturb the formulas in the 'A' column |
# Be sure not to disturb the formulas in the 'A' column |
my $data = shift(@exportdata); |
my $data = shift(@exportdata); |