version 1.1, 2003/05/16 20:55:11
|
version 1.3, 2003/05/19 15:48:18
|
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 76 sub initialize_sequence_cache {
|
Line 78 sub initialize_sequence_cache {
|
&Apache::loncoursedata::get_sequence_assessment_data(); |
&Apache::loncoursedata::get_sequence_assessment_data(); |
if (! defined($top) || ! ref($top)) { |
if (! defined($top) || ! ref($top)) { |
# There has been an error, better report it |
# There has been an error, better report it |
&Apache::lonnet::logthis('top is undefined'); |
&Apache::lonnet::logthis('top is undefined (studentcalc.pm)'); |
return; |
return; |
} |
} |
@Sequences = @{$sequences} if (ref($sequences) eq 'ARRAY'); |
@Sequences = @{$sequences} if (ref($sequences) eq 'ARRAY'); |
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 111 sub outsheet_html {
|
Line 127 sub outsheet_html {
|
# Get the list of assessment files # |
# Get the list of assessment files # |
#################################### |
#################################### |
my @AssessFileNames = $self->othersheets('assesscalc'); |
my @AssessFileNames = $self->othersheets('assesscalc'); |
|
my $editing_is_allowed = &Apache::lonnet::allowed('mgr', |
|
$ENV{'request.course.id'}); |
#################################### |
#################################### |
# Determine table structure # |
# Determine table structure # |
#################################### |
#################################### |
my $num_uneditable = 26; |
my $num_uneditable = 26; |
my $num_left = 52-$num_uneditable; |
my $num_left = 52-$num_uneditable; |
my $tableheader =<<"END"; |
my $tableheader =<<"END"; |
|
<p> |
<table border="2"> |
<table border="2"> |
<tr> |
<tr> |
<th colspan="2" rowspan="2"><font size="+2">Student</font></th> |
<th colspan="2" rowspan="2"><font size="+2">Student</font></th> |
Line 151 END
|
Line 170 END
|
# |
# |
# Prepare to output rows |
# Prepare to output rows |
$tableheader =<<"END"; |
$tableheader =<<"END"; |
|
</p><p> |
<table border="2"> |
<table border="2"> |
<tr><th>Row</th><th>Assessment</th> |
<tr><th>Row</th><th>Assessment</th> |
END |
END |
Line 176 END
|
Line 196 END
|
next if ($resource->{'type'} ne 'assessment'); |
next if ($resource->{'type'} ne 'assessment'); |
my $rownum = $self->get_row_number_from_key($resource->{'symb'}); |
my $rownum = $self->get_row_number_from_key($resource->{'symb'}); |
my $assess_filename = $self->{'row_source'}->{$rownum}; |
my $assess_filename = $self->{'row_source'}->{$rownum}; |
my $row_output = '<tr><td>'.$rownum.'</td>'; |
my $row_output = '<tr>'; |
$row_output .= '<td>'. |
if ($editing_is_allowed) { |
'<a href="/adm/assesscalc?sname='.$self->{'name'}. |
$row_output .= '<td>'.$rownum.'</td>'; |
'&sdomain='.$self->{'domain'}. |
$row_output .= '<td>'. |
'&filename='.$assess_filename. |
'<a href="/adm/assesscalc?sname='.$self->{'name'}. |
'&usymb='.$resource->{'symb'}.'">'. |
'&sdomain='.$self->{'domain'}. |
$resource->{'title'}.'</a>'; |
'&filename='.$assess_filename. |
$row_output .= &assess_file_selector($rownum, |
'&usymb='.&Apache::lonnet::escape($resource->{'symb'}).'">'. |
$assess_filename, |
$resource->{'title'}.'</a><br />'; |
\@AssessFileNames); |
$row_output .= &assess_file_selector($rownum, |
$row_output .= '</td>'.$self->html_row($num_uneditable,$rownum). |
$assess_filename, |
|
\@AssessFileNames). |
|
'</td>'; |
|
} else { |
|
$row_output .= '<td><a href="'.$resource->{'src'}.'?symb='. |
|
&Apache::lonnet::escape($resource->{'symb'}).'>Go To</a>'; |
|
$row_output .= '</td><td>'.$resource->{'title'}.'</td>'; |
|
} |
|
$row_output .= $self->html_row($num_uneditable,$rownum). |
"</tr>\n"; |
"</tr>\n"; |
$r->print($row_output); |
$r->print($row_output); |
} |
} |
$r->print("</table>\n"); |
$r->print("</table>\n"); |
} |
} |
|
$r->print("</p>\n"); |
return; |
return; |
} |
} |
|
|
Line 208 END
|
Line 237 END
|
######################################################## |
######################################################## |
sub assess_file_selector { |
sub assess_file_selector { |
my ($row,$default,$AssessFiles)=@_; |
my ($row,$default,$AssessFiles)=@_; |
return '' if (!defined($AssessFiles) || ! @$AssessFiles); |
if (!defined($AssessFiles) || ! @$AssessFiles) { |
|
return ''; |
|
} |
return '' if (! &Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})); |
return '' if (! &Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})); |
my $element_name = 'FileSelect_'.$row; |
my $element_name = 'FileSelect_'.$row; |
my $load_dialog = '<select size="1" name="'.$element_name.'" '. |
my $load_dialog = '<select size="1" name="'.$element_name.'" '. |