version 1.56, 2002/09/06 17:46:13
|
version 1.58, 2002/09/09 20:20:40
|
Line 45 use Apache::lonxml;
|
Line 45 use Apache::lonxml;
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::inputtags; |
use Apache::inputtags; |
use Apache::loncoursedata; |
|
use Apache::grades; |
use Apache::grades; |
use Apache::edit; |
use Apache::edit; |
use Apache::File(); |
use Apache::File(); |
Line 62 sub headerform {
|
Line 61 sub headerform {
|
<body bgcolor="FFFFFF"> |
<body bgcolor="FFFFFF"> |
<form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform"> |
<form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform"> |
<tt>$ENV{'form.postdata'}</tt><p> |
<tt>$ENV{'form.postdata'}</tt><p> |
<h1>What do you want to print? Make a choice.</h1><br /> |
|
ENDHEADER |
ENDHEADER |
} |
} |
|
|
Line 70 ENDHEADER
|
Line 68 ENDHEADER
|
sub menu_for_output { |
sub menu_for_output { |
my $r = shift; |
my $r = shift; |
$r->print(<<ENDMENUOUT1); |
$r->print(<<ENDMENUOUT1); |
|
<h1>What do you want to print? Make a choice.</h1><br /> |
<input type="hidden" name="phase" value="two"> |
<input type="hidden" name="phase" value="two"> |
<input type="hidden" name="url" value="$ENV{'form.postdata'}"> |
<input type="hidden" name="url" value="$ENV{'form.postdata'}"> |
<input type="radio" name="choice" value="Standard LaTeX output for current document" checked> Current document |
<input type="radio" name="choice" value="Standard LaTeX output for current document" checked> Current document |
Line 109 ENDMENUOUT4
|
Line 108 ENDMENUOUT4
|
Number of columns: <select name="numberofcolumns"> |
Number of columns: <select name="numberofcolumns"> |
<option selected> 1 </option> |
<option selected> 1 </option> |
<option> 2 </option> |
<option> 2 </option> |
<option> 3 </option> |
|
<option> 4 </option> |
|
<option> 5 </option> |
|
<option> 6 </option> |
|
<option> 7 </option> |
|
<option> 8 </option> |
|
<option> 9 </option> |
|
</select> |
</select> |
</td> |
</td> |
</tr> |
</tr> |
Line 126 ENDMENUOUT5
|
Line 118 ENDMENUOUT5
|
} |
} |
|
|
|
|
|
sub problem_choice_menu { |
|
my $r = shift; |
|
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'}); |
|
$subdirtoprint =~ s/\/[^\/]+$//; |
|
my @list_of_files = (); |
|
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { |
|
$subdirtoprint =~ s/^[^~]*~(\w+)\//\/home\/$1\/public_html\//; |
|
} else { |
|
$subdirtoprint =~ s/.*(\/res\/)/$1/; |
|
} |
|
my @content_directory = (); |
|
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { |
|
@content_directory = &Apache::lonnet::dirlist($subdirtoprint,$ENV{'user.domain'}, $ENV{'user.name'},''); |
|
} else { |
|
@content_directory = &Apache::lonnet::dirlist($subdirtoprint); |
|
} |
|
for (my $iy=0;$iy<=$#content_directory;$iy++) { |
|
my @tempo_array = split(/&/,$content_directory[$iy]); |
|
if ($tempo_array[0] =~ m/^[^\.]+\.(problem|exam|quiz|assess|survey|form|library)$/) { |
|
push(@list_of_files,$tempo_array[0]); |
|
} |
|
} |
|
$subdirtoprint =~ s/\/$//; |
|
for (my $i=0;$i<=$#list_of_files;$i++) { |
|
$list_of_files[$i] = $subdirtoprint.'/'.$list_of_files[$i]; |
|
} |
|
$r->print(<<ENDMENUOUT1); |
|
<input type="hidden" name="url" value="$ENV{'form.url'}"> |
|
<input type="hidden" name="choice" value="$ENV{'form.choice'}"> |
|
<input type="hidden" name="layout" value="$ENV{'form.layout'}"> |
|
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}"> |
|
<h1>Mark problems which you want to print</h1> |
|
<script> |
|
function checkall() { |
|
for (i=0; i<document.forms.printform.elements.length; i++) { |
|
if |
|
(document.forms.printform.elements[i].name.indexOf('whattoprint')==0) { |
|
document.forms.printform.elements[i].checked=true; |
|
} |
|
} |
|
} |
|
|
|
|
|
function uncheckall() { |
|
for (i=0; i<document.forms.printform.elements.length; i++) { |
|
if |
|
(document.forms.printform.elements[i].name.indexOf('whattoprint')==0) { |
|
document.forms.printform.elements[i].checked=false; |
|
} |
|
} |
|
} |
|
</script> |
|
<input type=button onClick="checkall()" value="Check for All"> |
|
<input type=button onClick="uncheckall()" value="Check for None"> |
|
<p> |
|
ENDMENUOUT1 |
|
my $i; |
|
foreach my $file (@list_of_files) { |
|
$r->print('<br /><input type=checkbox name="whattoprint'.$i.'" value="'.$file.'"> '. |
|
$file); |
|
$i++; |
|
} |
|
$r->print(<<ENDMENUOUT2); |
|
<br /> |
|
<input type="hidden" name="numberofproblems" value="$i"> |
|
<input type="hidden" name="phase" value="three"> |
|
<input type="submit" value="Submit"> |
|
ENDMENUOUT2 |
|
} |
|
|
|
|
sub additional_class_menu { |
sub additional_class_menu { |
my $r = shift; |
my $r = shift; |
$r->print(<<ENDMENUOUT1); |
$r->print(<<ENDMENUOUT1); |
Line 135 sub additional_class_menu {
|
Line 198 sub additional_class_menu {
|
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}"> |
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}"> |
<h1>Mark students which assignments you want to print</h1> |
<h1>Mark students which assignments you want to print</h1> |
ENDMENUOUT1 |
ENDMENUOUT1 |
my $c = $r->connection; |
my %courselist=&Apache::lonnet::dump( |
my %cache; |
'classlist', |
my $courseID = $ENV{'request.course.id'}; |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
my $classlist = &Apache::loncoursedata::DownloadClasslist($courseID,$cache{'ClasslistTimestamp'},$c); |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
&Apache::loncoursedata::ProcessClasslist(\%cache,$classlist,$courseID,$c); |
my $now=time; |
my @all_students = split(':::',$cache{'NamesOfStudents'}); |
$r->print(<<ENDDISHEADER); |
my @active_students = (); |
<script> |
foreach my $student (@all_students) { |
function checkall() { |
if ($cache{$student.':Status'} eq 'Active') { |
for (i=0; i<document.forms.printform.elements.length; i++) { |
push @active_students,$student; |
if |
} |
(document.forms.printform.elements[i].name.indexOf('whomtoprint')==0) { |
} |
document.forms.printform.elements[i].checked=true; |
my $what_to_print = '<table border="1">'; |
} |
|
} |
|
} |
|
|
|
function checksec() { |
|
for (i=0; i<document.forms.printform.elements.length; i++) { |
|
if |
|
(document.forms.printform.elements[i].value.indexOf |
|
(document.forms.printform.chksec.value)==0) { |
|
document.forms.printform.elements[i].checked=true; |
|
} |
|
} |
|
} |
|
|
|
function uncheckall() { |
|
for (i=0; i<document.forms.printform.elements.length; i++) { |
|
if |
|
(document.forms.printform.elements[i].name.indexOf('whomtoprint')==0) { |
|
document.forms.printform.elements[i].checked=false; |
|
} |
|
} |
|
} |
|
</script> |
|
<input type=button onClick="checkall()" value="Check for All"> |
|
<input type=button onClick="checksec()" value="Check for Section/Group"> |
|
<input type=text size=5 name=chksec> |
|
<input type=button onClick="uncheckall()" value="Check for None"> |
|
<p> |
|
ENDDISHEADER |
my $i = 0; |
my $i = 0; |
foreach my $student (@active_students) { |
foreach (sort keys %courselist) { |
$what_to_print .= '<tr><td><input type="checkbox" name="whomtoprint'.$i.'" value="'.$student.'">'.$cache{$student.':fullname'}.'</td></tr>'; |
my ($end,$start)=split(/\:/,$courselist{$_}); |
# $what_to_print .= '<tr><td><input type="checkbox" name="whomtoprint'.$i.'" value="'.$cache{$student.':fullname'}.'">'.$cache{$student.':fullname'}.'</td></tr>'; |
my $active=1; |
$i++; |
if (($end) && ($now>$end)) { $active=0; } |
|
if ($active) { |
|
my ($sname,$sdom)=split(/\:/,$_); |
|
my %reply=&Apache::lonnet::get('environment', |
|
['firstname','middlename','lastname','generation'], |
|
$sdom,$sname); |
|
my $section=&Apache::lonnet::usection |
|
($sdom,$sname,$ENV{'request.course.id'}); |
|
$r->print( |
|
'<br /><input type=checkbox name="whomtoprint'.$i.'" value="'.$section.':'.$_.'"> '. |
|
$reply{'firstname'}.' '. |
|
$reply{'middlename'}.' '. |
|
$reply{'lastname'}.' '. |
|
$reply{'generation'}. |
|
' ('.$_.') '.$section); |
|
$i++; |
|
} |
} |
} |
$what_to_print .= '</table>'; |
|
$r->print(<<ENDMENUOUT2); |
$r->print(<<ENDMENUOUT2); |
$what_to_print <br /> |
<br /> |
<input type="hidden" name="numberofstudents" value="$i"> |
<input type="hidden" name="numberofstudents" value="$i"> |
<input type="hidden" name="phase" value="three"> |
<input type="hidden" name="phase" value="three"> |
<input type="submit" value="Submit"> |
<input type="submit" value="Submit"> |
Line 170 sub additional_print_menu {
|
Line 276 sub additional_print_menu {
|
for (my $i=0; $i<$ENV{'form.numberofstudents'};$i++) { |
for (my $i=0; $i<$ENV{'form.numberofstudents'};$i++) { |
$what_to_print .= '<input type="hidden" name="whomtoprint'.$i.'" value="'.$ENV{'form.whomtoprint'.$i}.'">'; |
$what_to_print .= '<input type="hidden" name="whomtoprint'.$i.'" value="'.$ENV{'form.whomtoprint'.$i}.'">'; |
} |
} |
|
for (my $i=0; $i<$ENV{'form.numberofproblems'};$i++) { |
|
$what_to_print .= '<input type="hidden" name="whattoprint'.$i.'" value="'.$ENV{'form.whattoprint'.$i}.'">'; |
|
} |
$r->print(<<ENDMENUOUT); |
$r->print(<<ENDMENUOUT); |
$what_to_print |
$what_to_print |
<input type="hidden" name="url" value="$ENV{'form.url'}"> |
<input type="hidden" name="url" value="$ENV{'form.url'}"> |
<input type="hidden" name="choice" value="$ENV{'form.choice'}"> |
<input type="hidden" name="choice" value="$ENV{'form.choice'}"> |
<input type="hidden" name="layout" value="$ENV{'form.layout'}"> |
<input type="hidden" name="layout" value="$ENV{'form.layout'}"> |
<input type="hidden" name="numberofstudents" value="$ENV{'form.numberofstudents'}"> |
<input type="hidden" name="numberofstudents" value="$ENV{'form.numberofstudents'}"> |
|
<input type="hidden" name="numberofproblems" value="$ENV{'form.numberofproblems'}"> |
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}"> |
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}"> |
Enter width of the page: <input type="text" name="width" width="10" value="9cm"> <br /> |
Define page layout parameters: <br /> |
|
<b>Width</b>: <input type="text" name="width" width="8" value="9cm"> <br /> |
|
<b>Height</b>: <input type="text" name="height" width="8" value="25.9cm"> <br /> |
|
<b>Left margin</b>: <input type="text" name="leftmargin" width="8" value="-0.57in"> <br /> |
<input type="hidden" name="phase" value="four"> |
<input type="hidden" name="phase" value="four"> |
<input type="submit" value="Submit"> |
<input type="submit" value="Submit"> |
</form> |
</form> |
Line 339 ENDPART
|
Line 452 ENDPART
|
#loop over students |
#loop over students |
foreach my $person (@students) { |
foreach my $person (@students) { |
my $current_output = ''; |
my $current_output = ''; |
my ($username,$userdomain) = split /:/,$person; |
my ($usersection,$username,$userdomain) = split /:/,$person; |
my $fullname = &Apache::grades::get_fullname($username,$userdomain); |
my $fullname = &Apache::grades::get_fullname($username,$userdomain); |
#goes through all resources, checks if they are available for current student, and produces output |
#goes through all resources, checks if they are available for current student, and produces output |
foreach my $curres (@master_seq) { |
foreach my $curres (@master_seq) { |
Line 358 ENDPART
|
Line 471 ENDPART
|
$current_output =~ s/\\begin{document}/\\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$fullname}}\\hskip 1\.4in } \\vskip 5 mm /; |
$current_output =~ s/\\begin{document}/\\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$fullname}}\\hskip 1\.4in } \\vskip 5 mm /; |
$result .= $current_output; |
$result .= $current_output; |
} |
} |
|
|
$result = &additional_cleanup($result); |
$result = &additional_cleanup($result); |
|
|
|
|
|
|
|
|
|
|
|
|
} elsif ($choice eq 'Subdirectory print') { |
} elsif ($choice eq 'Subdirectory print') { |
my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'}); |
#prints selected problems from the subdirectory |
$subdirtoprint =~ s/\/[^\/]+$//; |
my @list_of_files = (); |
my @list_of_files = (); |
for (my $i=0; $i<$ENV{'form.numberofproblems'};$i++) { |
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { |
if ($ENV{'form.whattoprint'.$i}=~/^\//) { |
$subdirtoprint =~ s/^[^~]*~(\w+)\//\/home\/$1\/public_html\//; |
# $result.= $ENV{'form.whattoprint'.$i}.' FFF '; |
} else { |
push @list_of_files,$ENV{'form.whattoprint'.$i}; |
$subdirtoprint =~ s/.*(\/res\/)/$1/; |
|
} |
|
my @content_directory = (); |
|
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { |
|
@content_directory = &Apache::lonnet::dirlist($subdirtoprint,$ENV{'user.domain'}, $ENV{'user.name'},''); |
|
} else { |
|
@content_directory = &Apache::lonnet::dirlist($subdirtoprint); |
|
} |
|
for (my $iy=0;$iy<=$#content_directory;$iy++) { |
|
my @tempo_array = split(/&/,$content_directory[$iy]); |
|
if ($tempo_array[0] =~ m/^[^\.]+\.(problem|exam|quiz|assess|survey|form|library)$/) { |
|
push(@list_of_files,$tempo_array[0]); |
|
} |
} |
} |
} |
$subdirtoprint =~ s/\/$//; |
|
for (my $i=0;$i<=$#list_of_files;$i++) { |
for (my $i=0;$i<=$#list_of_files;$i++) { |
my $urlp = $subdirtoprint.'/'.$list_of_files[$i]; |
my $urlp = $list_of_files[$i]; |
my %moreenv; |
if ($urlp=~/\//) { |
$moreenv{'form.grade_target'}='tex'; |
my %moreenv; |
&Apache::lonnet::appenv(%moreenv); |
$moreenv{'form.grade_target'}='tex'; |
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { |
&Apache::lonnet::appenv(%moreenv); |
$urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/; |
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { |
} |
$urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/; |
my $texversion=&Apache::lonnet::ssi($urlp); |
} |
&Apache::lonnet::delenv('form.grade_target'); |
my $texversion=&Apache::lonnet::ssi($urlp); |
$texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/; |
&Apache::lonnet::delenv('form.grade_target'); |
$result .= $texversion; |
$texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/; |
|
$result .= $texversion; |
|
} |
} |
} |
$result = &additional_cleanup($result); |
$result = &additional_cleanup($result); |
|
|
Line 900 sub handler {
|
Line 995 sub handler {
|
if ($ENV{'form.phase'} eq 'two') { |
if ($ENV{'form.phase'} eq 'two') { |
if($ENV{'form.choice'} eq 'All class print') { |
if($ENV{'form.choice'} eq 'All class print') { |
&additional_class_menu($r); |
&additional_class_menu($r); |
|
} elsif($ENV{'form.choice'} eq 'Subdirectory print') { |
|
&problem_choice_menu($r); |
} else { |
} else { |
$ENV{'form.phase'} = 'three'; |
$ENV{'form.phase'} = 'three'; |
} |
} |