version 1.124, 2005/04/19 01:28:25
|
version 1.128, 2006/01/28 19:25:59
|
Line 622 Return a line of the chart for a student
|
Line 622 Return a line of the chart for a student
|
my @sequences; |
my @sequences; |
my $navmap; # Have to keep this around since weakref is a bit zealous |
my $navmap; # Have to keep this around since weakref is a bit zealous |
|
|
|
sub html_cleanup { |
|
undef(%prog_state); |
|
undef(%width); |
|
# |
|
undef($navmap); |
|
undef(@sequences); |
|
} |
|
|
sub html_initialize { |
sub html_initialize { |
my ($r) = @_; |
my ($r) = @_; |
# |
# |
$padding = ' 'x3; |
$padding = ' 'x3; |
$count = 0; |
$count = 0; |
$nodata_count = 0; |
$nodata_count = 0; |
undef(%prog_state); |
&html_cleanup(); |
undef(%width); |
|
# |
|
undef($navmap); |
|
undef(@sequences); |
|
($navmap,@sequences) = |
($navmap,@sequences) = |
&Apache::lonstatistics::selected_sequences_with_assessments(); |
&Apache::lonstatistics::selected_sequences_with_assessments(); |
if (! ref($navmap)) { |
if (! ref($navmap)) { |
Line 856 sub html_finish {
|
Line 860 sub html_finish {
|
} |
} |
$r->rflush(); |
$r->rflush(); |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
undef($navmap); |
&html_cleanup(); |
return; |
return; |
} |
} |
|
|
Line 963 my %formula_data;
|
Line 967 my %formula_data;
|
my $navmap; |
my $navmap; |
my @sequences; |
my @sequences; |
|
|
sub excel_initialize { |
sub excel_cleanup { |
my ($r) = @_; |
|
# |
# |
undef ($excel_sheet); |
undef ($excel_sheet); |
undef ($excel_workbook); |
undef ($excel_workbook); |
Line 980 sub excel_initialize {
|
Line 983 sub excel_initialize {
|
# |
# |
undef($navmap); |
undef($navmap); |
undef(@sequences); |
undef(@sequences); |
|
} |
|
|
|
sub excel_initialize { |
|
my ($r) = @_; |
|
|
|
&excel_cleanup(); |
($navmap,@sequences) = |
($navmap,@sequences) = |
&Apache::lonstatistics::selected_sequences_with_assessments(); |
&Apache::lonstatistics::selected_sequences_with_assessments(); |
if (! ref($navmap)) { |
if (! ref($navmap)) { |
Line 1135 sub excel_initialize {
|
Line 1144 sub excel_initialize {
|
! defined($formula_data{$symb}->{'Excel:endcell'})) { |
! defined($formula_data{$symb}->{'Excel:endcell'})) { |
$formula_data{$symb}->{'Excel:endcell'} = $formula_data{$symb}->{'Excel:startcell'}; |
$formula_data{$symb}->{'Excel:endcell'} = $formula_data{$symb}->{'Excel:startcell'}; |
} |
} |
|
|
|
my $start = $formula_data{$symb}->{'Excel:startcell'}; |
|
my $end = $formula_data{$symb}->{'Excel:endcell'}; |
$formula_data{$symb}->{'Excel:sum'}= $excel_sheet->store_formula |
$formula_data{$symb}->{'Excel:sum'}= $excel_sheet->store_formula |
('=SUM('.$formula_data{$symb}->{'Excel:startcell'}. |
("=IF(COUNT($start\:$end),SUM($start\:$end),\"\")"); |
':'.$formula_data{$symb}->{'Excel:endcell'}.')'); |
|
# Determine cell the score is held in |
# Determine cell the score is held in |
$formula_data{$symb}->{'Excel:scorecell'} = |
$formula_data{$symb}->{'Excel:scorecell'} = |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
Line 1222 sub excel_initialize {
|
Line 1233 sub excel_initialize {
|
$weight = 1; |
$weight = 1; |
if ($chosen_output->{'scores'}) { |
if ($chosen_output->{'scores'}) { |
$weight = &Apache::lonnet::EXT |
$weight = &Apache::lonnet::EXT |
('resource.'.$part.'.weight',$resource->{'symb'}, |
('resource.'.$part.'.weight',$resource->symb, |
undef,undef,undef); |
undef,undef,undef); |
if (!defined($weight) || ($weight eq '')) { |
if (!defined($weight) || ($weight eq '')) { |
$weight=1; |
$weight=1; |
Line 1246 sub excel_initialize {
|
Line 1257 sub excel_initialize {
|
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell($maximum_data_row,$formula_data{$symb}->{'Excel:endcol'})); |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell($maximum_data_row,$formula_data{$symb}->{'Excel:endcol'})); |
$excel_sheet->repeat_formula($maximum_data_row,$cols_output++, |
$excel_sheet->repeat_formula($maximum_data_row,$cols_output++, |
$formula_data{$symb}->{'Excel:sum'},undef, |
$formula_data{$symb}->{'Excel:sum'},undef, |
%replaceCells); |
%replaceCells, %replaceCells); |
|
|
} elsif ($chosen_output->{'sequence_sum'}) { |
} elsif ($chosen_output->{'sequence_sum'}) { |
$excel_sheet->write($maximum_data_row,$cols_output++,$max); |
$excel_sheet->write($maximum_data_row,$cols_output++,$max); |
Line 1402 sub excel_outputstudent {
|
Line 1413 sub excel_outputstudent {
|
if ($chosen_output->{'correct'}) { |
if ($chosen_output->{'correct'}) { |
# only indiciate if each item is correct or not |
# only indiciate if each item is correct or not |
foreach my $value (@$rawdata) { |
foreach my $value (@$rawdata) { |
# nonzero means correct |
# positive means correct, 0 or negative means |
$value = 1 if ($value > 0); |
# incorrect |
|
$value = $value > 0 ? 1 : 0; |
$excel_sheet->write($rows_output,$cols_output++,$value); |
$excel_sheet->write($rows_output,$cols_output++,$value); |
} |
} |
} else { |
} else { |
Line 1429 sub excel_outputstudent {
|
Line 1441 sub excel_outputstudent {
|
# The undef is for the format |
# The undef is for the format |
$excel_sheet->repeat_formula($rows_output,$cols_output++, |
$excel_sheet->repeat_formula($rows_output,$cols_output++, |
$formula_data{$symb}->{'Excel:sum'},undef, |
$formula_data{$symb}->{'Excel:sum'},undef, |
%replaceCells); |
%replaceCells, %replaceCells); |
} elsif ($chosen_output->{'sequence_sum'}) { |
} elsif ($chosen_output->{'sequence_sum'}) { |
if ($score eq ' ') { |
if ($score eq ' ') { |
$cols_output++; |
$cols_output++; |
Line 1465 sub excel_outputstudent {
|
Line 1477 sub excel_outputstudent {
|
sub excel_finish { |
sub excel_finish { |
my ($r) = @_; |
my ($r) = @_; |
if ($request_aborted || ! defined($navmap) || ! defined($excel_sheet)) { |
if ($request_aborted || ! defined($navmap) || ! defined($excel_sheet)) { |
|
&excel_cleanup(); |
return; |
return; |
} |
} |
# |
# |
# Write the excel file |
# Write the excel file |
$excel_workbook->close(); |
$excel_workbook->close(); |
my $c = $r->connection(); |
|
# |
|
return if($c->aborted()); |
|
# |
# |
# Close the progress window |
# Close the progress window |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
Line 1481 sub excel_finish {
|
Line 1491 sub excel_finish {
|
$r->print('<br />'. |
$r->print('<br />'. |
'<a href="'.$filename.'">Your Excel spreadsheet.</a>'."\n"); |
'<a href="'.$filename.'">Your Excel spreadsheet.</a>'."\n"); |
$r->rflush(); |
$r->rflush(); |
|
&excel_cleanup(); |
return; |
return; |
} |
} |
|
|
Line 1511 my %prog_state; # progress window state
|
Line 1522 my %prog_state; # progress window state
|
my $navmap; |
my $navmap; |
my @sequences; |
my @sequences; |
|
|
sub csv_initialize{ |
sub csv_cleanup { |
my ($r) = @_; |
|
# |
|
# Clean up |
|
undef($outputfile); |
undef($outputfile); |
undef($filename); |
undef($filename); |
undef($request_aborted); |
undef($request_aborted); |
Line 1522 sub csv_initialize{
|
Line 1530 sub csv_initialize{
|
# |
# |
undef($navmap); |
undef($navmap); |
undef(@sequences); |
undef(@sequences); |
|
} |
|
|
|
sub csv_initialize{ |
|
my ($r) = @_; |
|
|
|
&csv_cleanup(); |
($navmap,@sequences) = |
($navmap,@sequences) = |
&Apache::lonstatistics::selected_sequences_with_assessments(); |
&Apache::lonstatistics::selected_sequences_with_assessments(); |
if (! ref($navmap)) { |
if (! ref($navmap)) { |
Line 1707 sub csv_outputstudent {
|
Line 1721 sub csv_outputstudent {
|
sub csv_finish { |
sub csv_finish { |
my ($r) = @_; |
my ($r) = @_; |
if ($request_aborted || ! defined($navmap) || ! defined($outputfile)) { |
if ($request_aborted || ! defined($navmap) || ! defined($outputfile)) { |
|
&csv_cleanup(); |
return; |
return; |
} |
} |
close($outputfile); |
close($outputfile); |
# |
# |
my $c = $r->connection(); |
|
return if ($c->aborted()); |
|
# |
|
# Close the progress window |
# Close the progress window |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
# |
# |
Line 1721 sub csv_finish {
|
Line 1733 sub csv_finish {
|
$r->print('<br />'. |
$r->print('<br />'. |
'<a href="'.$filename.'">'.&mt('Your csv file.').'</a>'."\n"); |
'<a href="'.$filename.'">'.&mt('Your csv file.').'</a>'."\n"); |
$r->rflush(); |
$r->rflush(); |
|
&csv_cleanup(); |
return; |
return; |
|
|
} |
} |