version 1.2, 2006/02/14 16:34:46
|
version 1.3, 2006/02/14 22:12:46
|
Line 34 use Apache::loncoursedata();
|
Line 34 use Apache::loncoursedata();
|
use Apache::lonstatistics; |
use Apache::lonstatistics; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonstathelpers(); |
use Apache::lonstathelpers(); |
use Apache::lonstudentsubmissions(); |
use Spreadsheet::WriteExcel; |
|
use Spreadsheet::WriteExcel::Utility(); |
use HTML::Entities(); |
use HTML::Entities(); |
use Time::Local(); |
use Time::Local(); |
use Data::Dumper; |
use Data::Dumper; |
Line 177 sub task_analysis {
|
Line 178 sub task_analysis {
|
&mt('last student')); |
&mt('last student')); |
|
|
} |
} |
|
|
|
my @output; |
|
foreach my $grader (sort(keys(%graders))) { |
|
my ($gname,$gdom) = split(/(?:\:|\@)/,$grader,2); |
|
my $name = &Apache::loncommon::plainname($gname,$gdom); |
|
push(@output,[$name,$gname."@".$gdom,$graders{$grader}]); |
|
} |
|
|
if ($env{'form.output'} eq 'csv') { |
if ($env{'form.output'} eq 'csv') { |
|
my ($outputfile,$filename) = &init_csv_output($r); |
|
foreach my $line (@output) { |
|
print $outputfile |
|
('"'.join(q{","}, |
|
map {&Apache::loncommon::csv_translate($_)} @{$line}) |
|
.'"'."\n"); |
|
} |
|
close($outputfile); |
|
$r->print('<br />'. |
|
'<a href="'.$filename.'">'.&mt('Your csv file.')."</a>\n"); |
} elsif ($env{'form.output'} eq 'excel') { |
} elsif ($env{'form.output'} eq 'excel') { |
|
my ($excel_workbook,$excel_sheet,$filename,$format,$rows_output) = |
|
&init_excel_output($r); |
|
foreach my $line (@output) { |
|
my $cols_output = 0; |
|
foreach my $item (@{ $line }) { |
|
$excel_sheet->write($rows_output,$cols_output++,$item); |
|
} |
|
$rows_output++; |
|
} |
|
# Write the excel file |
|
$excel_workbook->close(); |
|
|
|
# Tell the user where to get their excel file |
|
$r->print('<br />'. |
|
'<a href="'.$filename.'">'. |
|
&mt('Your Excel spreadsheet.').'</a>'."\n"); |
} else { |
} else { |
$r->print('<table class="thinborder">'); |
$r->print('<table class="thinborder">'); |
foreach my $grader (sort(keys(%graders))) { |
$r->print('<tr><th>Name (username)</th><th>Grades Assigned</th></tr>'); |
my ($gname,$gdom) = split('@',$grader,2); |
foreach my $line (@output) { |
my $name = &Apache::loncommon::plainname($gname,$gdom); |
$r->print(sprintf("<tr><td>%s (<tt>%s</tt>)</td><td>%s</td></tr>", |
my $link = &Apache::loncommon::aboutmewrapper($name,$gname,$gdom); |
@{$line})); |
$r->print("<tr><td>$link (<tt>$grader</tt>)</td><td>$graders{$grader}</td></tr>"); |
|
} |
} |
$r->print('</table>'); |
$r->print('</table>'); |
} |
} |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
} |
} |
|
|
|
sub init_csv_output { |
|
my ($r) = @_; |
|
my ($outputfile,$filename) = |
|
&Apache::loncommon::create_text_file($r,'csv'); |
|
my $description = $env{'course.'.$env{'request.course.id'}.'.description'}; |
|
print $outputfile ('"'.&Apache::loncommon::csv_translate($description). |
|
'","'.&Apache::loncommon::csv_translate(scalar(localtime(time))). |
|
'"'."\n"); |
|
print $outputfile ('"'. |
|
&Apache::loncommon::csv_translate(&Apache::lonstatistics::section_and_enrollment_description()). |
|
'"'."\n"); |
|
print $outputfile ('"' .&Apache::loncommon::csv_translate('Grader Name')); |
|
print $outputfile ('","'.&Apache::loncommon::csv_translate('Username')); |
|
print $outputfile ('","'.&Apache::loncommon::csv_translate('Grades Assigned'). |
|
'"'."\n"); |
|
return ($outputfile,$filename); |
|
} |
|
|
|
sub init_excel_output { |
|
my ($r) = @_; |
|
my ($excel_workbook,$filename,$format)= |
|
&Apache::loncommon::create_workbook($r); |
|
return if (! defined($excel_workbook)); |
|
my $rows_output = 0; |
|
my $cols_output = 0; |
|
my $header_row = $rows_output++; |
|
my $description_row = $rows_output++; |
|
$rows_output++; # blank row |
|
|
|
my $sheetname = $env{'course.'.$env{'request.course.id'}.'.description'}; |
|
$sheetname = &Apache::loncommon::clean_excel_name($sheetname); |
|
my $excel_sheet = $excel_workbook->addworksheet($sheetname); |
|
$excel_sheet->write($header_row,$cols_output++, |
|
$env{'course.'.$env{'request.course.id'}.'.description'}, |
|
$format->{'h1'}); |
|
$cols_output += 3; |
|
my $sectionstring = ''; |
|
my @Sections = &Apache::lonstatistics::get_selected_sections(); |
|
$excel_sheet->write($header_row,$cols_output++, |
|
&Apache::lonstatistics::section_and_enrollment_description('plaintext'), |
|
$format->{'h3'}); |
|
|
|
$excel_sheet->write($header_row,$cols_output++, |
|
'Compiled on '.localtime(time),$format->{'h3'}); |
|
$cols_output = 0; |
|
foreach my $field ('Grader Name','Username','Grades Assigned') { |
|
$excel_sheet->write($description_row,$cols_output++,$field, |
|
$format->{'bold'}); |
|
} |
|
return ($excel_workbook,$excel_sheet,$filename,$format,$rows_output); |
|
} |
|
|
######################################################### |
######################################################### |
######################################################### |
######################################################### |
## |
## |