version 1.7, 2003/05/23 21:03:29
|
version 1.15, 2003/07/16 20:30:36
|
Line 64 my %Exportrows = ();
|
Line 64 my %Exportrows = ();
|
|
|
my $current_course; |
my $current_course; |
|
|
|
sub initialize { |
|
&Apache::assesscalc::initialize(); |
|
&initialize_sequence_cache(); |
|
} |
|
|
sub initialize_package { |
sub initialize_package { |
$current_course = $ENV{'request.course.id'}; |
$current_course = $ENV{'request.course.id'}; |
&initialize_sequence_cache(); |
&initialize_sequence_cache(); |
&load_cached_export_rows(); |
&load_cached_export_rows(); |
} |
} |
|
|
|
sub ensure_correct_sequence_data { |
|
if ($current_course ne $ENV{'request.course.id'}) { |
|
&initialize_sequence_cache(); |
|
$current_course = $ENV{'request.course.id'}; |
|
} |
|
return; |
|
} |
|
|
sub initialize_sequence_cache { |
sub initialize_sequence_cache { |
# |
# |
# Set up the sequences and assessments |
# Set up the sequences and assessments |
Line 131 sub parent_link {
|
Line 144 sub parent_link {
|
return $link; |
return $link; |
} |
} |
|
|
|
sub convenience_links { |
|
my $self = shift; |
|
my ($resource) = @_; |
|
my $symb = &Apache::lonnet::escape($resource->{'symb'}); |
|
my $result = <<"END"; |
|
<a href="/adm/grades?symb=$symb&command=submission" target="LONcatInfo"> |
|
<img src="/adm/lonMisc/subm_button.gif" border=0 /> |
|
</a> |
|
<a href="/adm/grades?symb=$symb&command=gradingmenu" target="LONcatInfo"> |
|
<img src="/adm/lonMisc/pgrd_button.gif" border=0 /> |
|
</a> |
|
<a href="/adm/parmset?symb=$symb" target="LONcatInfo"> |
|
<img src="/adm/lonMisc/pprm_button.gif" border=0 /> |
|
</a> |
|
END |
|
return $result; |
|
} |
|
|
sub outsheet_html { |
sub outsheet_html { |
my $self = shift; |
my $self = shift; |
my ($r) = @_; |
my ($r) = @_; |
|
my $importcolor = '#FFFFAA'; |
|
my $exportcolor = '#88FF88'; |
#################################### |
#################################### |
# Get the list of assessment files # |
# Get the list of assessment files # |
#################################### |
#################################### |
Line 150 sub outsheet_html {
|
Line 183 sub outsheet_html {
|
<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> |
<td bgcolor="#FFDDDD" colspan="$num_uneditable"> |
<td bgcolor="$importcolor" colspan="$num_uneditable"> |
<b><font size="+1">Import</font></b></td> |
<b><font size="+1">Import</font></b></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> |
Line 159 END
|
Line 192 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 178 END
|
Line 211 END
|
# Print out template row |
# Print out template row |
if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) { |
if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) { |
$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>Summary</td><td>0</td>'. |
$r->print('<tr><td>Summary</td><td>0</td>'. |
$self->html_export_row()."</tr>\n"); |
$self->html_export_row($exportcolor)."</tr>\n"); |
} |
} |
$r->print("</table>\n"); |
$r->print("</table>\n"); |
# |
# |
Line 192 END
|
Line 226 END
|
$tableheader =<<"END"; |
$tableheader =<<"END"; |
</p><p> |
</p><p> |
<table border="2"> |
<table border="2"> |
<tr><th>Row</th><th>Assessment</th> |
<tr><th>Row</th><th> </th><th>Assessment</th> |
END |
END |
} else { |
} else { |
$tableheader =<<"END"; |
$tableheader =<<"END"; |
Line 226 END
|
Line 260 END
|
my $row_output = '<tr>'; |
my $row_output = '<tr>'; |
if ($editing_is_allowed) { |
if ($editing_is_allowed) { |
$row_output .= '<td>'.$rownum.'</td>'; |
$row_output .= '<td>'.$rownum.'</td>'; |
|
$row_output .= '<td>'.$self->convenience_links($resource).'</td>'; |
$row_output .= '<td>'. |
$row_output .= '<td>'. |
'<a href="/adm/assesscalc?sname='.$self->{'name'}. |
'<a href="/adm/assesscalc?sname='.$self->{'name'}. |
'&sdomain='.$self->{'domain'}. |
'&sdomain='.$self->{'domain'}. |
Line 246 END
|
Line 281 END
|
$row_output .= |
$row_output .= |
'<td colspan="52">Unavailable at this time</td></tr>'."\n"; |
'<td colspan="52">Unavailable at this time</td></tr>'."\n"; |
} else { |
} else { |
$row_output .= $self->html_row($num_uneditable,$rownum). |
$row_output .= $self->html_row($num_uneditable,$rownum, |
|
$exportcolor,$importcolor). |
"</tr>\n"; |
"</tr>\n"; |
} |
} |
$r->print($row_output); |
$r->print($row_output); |
Line 320 sub csv_rows {
|
Line 356 sub csv_rows {
|
# |
# |
# Write a header row |
# Write a header row |
$self->csv_output_row($filehandle,undef, |
$self->csv_output_row($filehandle,undef, |
('Container','Assessment title')); |
('Sequence or Folder','Assessment title')); |
# |
# |
# Write each assessments row |
# Write each assessments row |
if (scalar(@Sequences)< 1) { |
if (scalar(@Sequences)< 1) { |
Line 373 sub outsheet_recursive_excel {
|
Line 409 sub outsheet_recursive_excel {
|
my ($r) = @_; |
my ($r) = @_; |
} |
} |
|
|
sub set_row_sources { |
|
my $self = shift; |
|
while (my ($cell,$value) = each(%{$self->{'formulas'}})) { |
|
next if ($cell !~ /^A(\d+)/ && $1 > 0); |
|
my $row = $1; |
|
(undef,$value) = split('__&&&__',$value); |
|
$value = 'Default' if (! defined($value)); |
|
$self->{'row_source'}->{$row} = $value; |
|
} |
|
return; |
|
} |
|
|
|
sub compute { |
sub compute { |
my $self = shift; |
my $self = shift; |
$self->logthis('computing'); |
$self->logthis('computing'); |
Line 462 sub compute {
|
Line 486 sub compute {
|
$Exportrows{$student}->{'data'} = \@exportarray; |
$Exportrows{$student}->{'data'} = \@exportarray; |
# save export row |
# save export row |
$self->save_export_data(); |
$self->save_export_data(); |
|
# |
|
$self->save() if ($self->need_to_save()); |
|
return; |
|
} |
|
|
|
sub set_row_sources { |
|
my $self = shift; |
|
while (my ($cell,$value) = each(%{$self->{'formulas'}})) { |
|
next if ($cell !~ /^A(\d+)/ && $1 > 0); |
|
my $row = $1; |
|
(undef,$value) = split('__&&&__',$value); |
|
$value = 'Default' if (! defined($value)); |
|
$self->{'row_source'}->{$row} = $value; |
|
} |
return; |
return; |
} |
} |
|
|
Line 473 sub set_row_numbers {
|
Line 511 sub set_row_numbers {
|
next if ($row == 0); |
next if ($row == 0); |
my ($symb,undef) = split('__&&&__',$formula); |
my ($symb,undef) = split('__&&&__',$formula); |
$self->{'row_numbers'}->{$symb} = $row; |
$self->{'row_numbers'}->{$symb} = $row; |
|
$self->{'maxrow'} = $1 if ($1 > $self->{'maxrow'}); |
} |
} |
} |
} |
|
|
Line 576 sub export_data {
|
Line 615 sub export_data {
|
my $self = shift; |
my $self = shift; |
my $student = $self->{'name'}.':'.$self->{'domain'}; |
my $student = $self->{'name'}.':'.$self->{'domain'}; |
if (! exists($Exportrows{$student}) || |
if (! exists($Exportrows{$student}) || |
|
! defined($Exportrows{$student}) || |
|
! defined($Exportrows{$student}->{'data'}) || |
! $self->check_expiration_time($Exportrows{$student}->{'time'})) { |
! $self->check_expiration_time($Exportrows{$student}->{'time'})) { |
$self->compute(); |
$self->compute(); |
} |
} |