version 1.286, 2004/03/23 19:36:51
|
version 1.297, 2004/04/30 17:50:29
|
Line 672 sub get_textwidth {
|
Line 672 sub get_textwidth {
|
return $textwidth; |
return $textwidth; |
} |
} |
|
|
|
|
|
sub unsupported { |
|
my $currentURL=shift; |
|
my $result.='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: '; |
|
if ($currentURL=~/\/(aboutme|syllabus|bulletinboard|smppg)$/) { |
|
$result.='\textbf{'.$1.'}'; |
|
} elsif ($currentURL=~/\/ext\//) { |
|
$result.=' \strut \\\\ THIS IS EXTERNAL RESOURCE WITH URL \strut \\\\ '.$currentURL.' '; |
|
} else { |
|
$result.=$currentURL; |
|
} |
|
$result.= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill} \end{document}'; |
|
return $result; |
|
} |
|
|
|
|
sub output_data { |
sub output_data { |
my ($r,$helper,$rparmhash) = @_; |
my ($r,$helper,$rparmhash) = @_; |
my %parmhash = %$rparmhash; |
my %parmhash = %$rparmhash; |
Line 750 ENDPART
|
Line 766 ENDPART
|
my $put_result = &Apache::lonnet::put('environment',{'construct.style'=>$helper->{'VARS'}->{'style_file'}},$dom,$user); |
my $put_result = &Apache::lonnet::put('environment',{'construct.style'=>$helper->{'VARS'}->{'style_file'}},$dom,$user); |
} |
} |
my %form; |
my %form; |
|
if ($helper->{'VARS'}->{'probstatus'} eq 'exam') {$form{'problemtype'}='exam';} |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); |
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
$form{'problem_split'}=$parmhash{'problem_stream_switch'}; |
Line 867 ENDPART
|
Line 884 ENDPART
|
my $texversion=&Apache::lonnet::ssi($currentURL,%form); |
my $texversion=&Apache::lonnet::ssi($currentURL,%form); |
$result .= $texversion; |
$result .= $texversion; |
} else { |
} else { |
$result.='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: '; |
$result.=&unsupported($currentURL); |
if ($currentURL=~/\/(aboutme|syllabus|bulletinboard|smppg)$/) { |
|
$result.=$1; |
|
} elsif ($currentURL=~/\/ext\//) { |
|
$result.=' \strut \\\\ THIS IS EXTERNAL RESOURCE WITH URL \strut \\\\ '.$currentURL.' '; |
|
} else { |
|
$result.=$currentURL; |
|
} |
|
$result.=' \end{document}' |
|
} |
} |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences')) { |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences')) { |
#-- produce an output string |
#-- produce an output string |
|
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') { |
|
$selectionmade = 2; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { |
|
$selectionmade = 3; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') { |
|
$selectionmade = 4; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') { |
|
$selectionmade = 7; |
|
} |
my %form=(); |
my %form=(); |
$form{'grade_target'}='tex'; |
$form{'grade_target'}='tex'; |
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); |
$form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); |
Line 896 ENDPART
|
Line 914 ENDPART
|
for (my $i=0;$i<=$#master_seq;$i++) { |
for (my $i=0;$i<=$#master_seq;$i++) { |
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); |
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); |
$urlp=&Apache::lonnet::clutter($urlp); |
$urlp=&Apache::lonnet::clutter($urlp); |
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') { |
|
$selectionmade = 2; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { |
|
$selectionmade = 3; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') { |
|
$selectionmade = 4; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') { |
|
$selectionmade = 7; |
|
} |
|
$form{'symb'}=$master_seq[$i]; |
$form{'symb'}=$master_seq[$i]; |
my ($sequence)=&Apache::lonnet::decode_symb($master_seq[$i]); |
my ($sequence)=&Apache::lonnet::decode_symb($master_seq[$i]); |
my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #tittle of the assignment which contains this problem |
my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #tittle of the assignment which contains this problem |
if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} |
if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} |
if ($i==0) {$prevassignment=$assignment;} |
if ($i==0) {$prevassignment=$assignment;} |
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]"); |
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]"); |
my $texversion.=&Apache::lonnet::ssi($urlp,%form); |
my $texversion=''; |
if ($urlp=~/\.page$/) { |
if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { |
($texversion,my $number_of_columns_page) = &page_cleanup($texversion); |
$texversion.=&Apache::lonnet::ssi($urlp,%form); |
if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} |
if ($urlp=~/\.page$/) { |
$texversion =~ s/\\end{document}\d*/\\end{document}/; |
($texversion,my $number_of_columns_page) = &page_cleanup($texversion); |
$flag_page_in_sequence = 'YES'; |
if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} |
} |
$texversion =~ s/\\end{document}\d*/\\end{document}/; |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
$flag_page_in_sequence = 'YES'; |
my $envfile=$ENV{'user.environment'}; |
} |
$envfile=~/\/([^\/]+)\.id$/; |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
$envfile=$1; |
my $envfile=$ENV{'user.environment'}; |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile); |
$envfile=~/\/([^\/]+)\.id$/; |
my $current_counter=$ENV{'form.counter'}; |
$envfile=$1; |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile); |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
my $current_counter=$ENV{'form.counter'}; |
my %form; |
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || |
$form{'grade_target'}='answer'; |
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { |
$form{'answer_output_mode'}='tex'; |
my %form; |
my $answer=&Apache::lonnet::ssi($urlp,%form); |
$form{'grade_target'}='answer'; |
&Apache::lonnet::appenv(('form.counter' => $current_counter)); |
$form{'answer_output_mode'}='tex'; |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
my $answer=&Apache::lonnet::ssi($urlp,%form); |
$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; |
&Apache::lonnet::appenv(('form.counter' => $current_counter)); |
} else { |
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { |
if ($urlp=~/\.(problem|exam|quiz|library)$/) { |
$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; |
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
|
$texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($urlp).'}\vskip 0 mm '; |
|
$texversion.=&path_to_problem ($urlp,$LaTeXwidth); |
|
$texversion.='\vskip 1 mm '.$answer; |
|
} else { |
} else { |
$texversion=''; |
if ($urlp=~/\.(problem|exam|quiz|library)$/) { |
|
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); |
|
$texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($urlp).'}\vskip 0 mm '; |
|
$texversion.=&path_to_problem ($urlp,$LaTeXwidth); |
|
$texversion.='\vskip 1 mm '.$answer; |
|
} else { |
|
$texversion=''; |
|
} |
} |
} |
} |
} |
} |
if ($flag_latex_header_remove ne 'NO') { |
if ($flag_latex_header_remove ne 'NO') { |
$texversion = &latex_header_footer_remove($texversion); |
$texversion = &latex_header_footer_remove($texversion); |
} else { |
|
$texversion =~ s/\\end{document}//; |
|
} |
|
if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') { |
|
$texversion=&IndexCreation($texversion,$urlp); |
|
} |
|
if (($selectionmade == 4) and ($assignment ne $prevassignment)) { |
|
my $name = &get_name(); |
|
my $courseidinfo = &get_course(); |
|
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
|
$prevassignment=$assignment; |
|
$result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip -5 mm '; |
|
} |
|
$result .= $texversion; |
|
$flag_latex_header_remove = 'YES'; |
} else { |
} else { |
$texversion =~ s/\\end{document}//; |
$texversion=&unsupported($urlp); |
} |
if ($flag_latex_header_remove ne 'NO') { |
if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') { |
$texversion = &latex_header_footer_remove($texversion); |
$texversion=&IndexCreation($texversion,$urlp); |
} else { |
} |
$texversion =~ s/\\end{document}//; |
if (($selectionmade == 4) and ($assignment ne $prevassignment)) { |
} |
my $name = &get_name(); |
$result .= $texversion; |
my $courseidinfo = &get_course(); |
$flag_latex_header_remove = 'YES'; |
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } |
} |
$prevassignment=$assignment; |
|
$result .='\newpage \noindent\parbox{\minipagewidth}{\noindent\\lhead{\\textit{\\textbf{'.$name.'}}'.$courseidinfo.' \\hfill \\thepage \\\\ \\textit{'.$assignment.'}}} \vskip -5 mm '; |
|
} |
|
$result .= $texversion; |
|
$flag_latex_header_remove = 'YES'; |
|
} |
} |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
if ($flag_page_in_sequence eq 'YES') {$result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;} |
if ($flag_page_in_sequence eq 'YES') {$result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;} |
Line 1001 ENDPART
|
Line 1022 ENDPART
|
$result .= $print_array[0].' \end{document}'; |
$result .= $print_array[0].' \end{document}'; |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon') || |
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon') || |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon') ) { |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon') ) { |
$selectionmade="Seems to be useless"; |
my $cdom =$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
|
my $cnum =$ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
|
my $num_todo=$helper->{'VARS'}->{'NUMBER_TO_PRINT_TOTAL'}; |
|
my $code_name=$helper->{'VARS'}->{'ANON_CODE_STORAGE_NAME'}; |
|
my $old_name=$helper->{'VARS'}->{'REUSE_OLD_CODES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
|
my ($type) = split(/_/,$helper->{'VARS'}->{'PRINT_TYPE'}); |
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_from_directory') { |
my $number_per_page=$helper->{'VARS'}->{'NUMBER_TO_PRINT'}; |
|
if ($number_per_page eq '0' || $number_per_page eq 'all') { |
|
$number_per_page=$num_todo; |
|
} |
|
my $flag_latex_header_remove = 'NO'; |
|
my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); |
|
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$num_todo,'inline'); |
|
my $seed=time+($$<<16)+($$); |
|
my @allcodes; |
|
if ($old_name) { |
|
my %result=&Apache::lonnet::get('CODEs',[$old_name],$cdom,$cnum); |
|
@allcodes=split(',',$result{$old_name}); |
|
} else { |
|
my %allcodes; |
|
for (my $i=0;$i<$num_todo;$i++) { |
|
$moreenv{'CODE'}=&get_CODE(\%allcodes,$i,$seed,'6'); |
|
} |
|
if ($code_name) { |
|
&Apache::lonnet::put('CODEs', |
|
{$code_name =>join(',',keys(%allcodes))}, |
|
$cdom,$cnum); |
|
} |
|
@allcodes=keys(%allcodes); |
|
} |
|
my $count=0; |
|
foreach my $code (sort(@allcodes)) { |
|
my $file_num=int($count/$number_per_page); |
|
$moreenv{'CODE'}=&num_to_letters($code); |
|
my ($output,$fullname)= |
|
&print_resources($r,$helper,'anonymous',$type,\%moreenv, |
|
\@master_seq,$flag_latex_header_remove); |
|
$print_array[$file_num].=$output; |
|
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state, |
|
&mt('last assignment').' '.$fullname); |
|
$flag_latex_header_remove = 'YES'; |
|
$count++; |
|
} |
|
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
|
$result .= $print_array[0].' \end{document}'; |
|
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_from_directory') { |
#prints selected problems from the subdirectory |
#prints selected problems from the subdirectory |
$selectionmade = 6; |
$selectionmade = 6; |
my @list_of_files=split /\|\|\|/, $helper->{'VARS'}->{'FILES'}; |
my @list_of_files=split /\|\|\|/, $helper->{'VARS'}->{'FILES'}; |
Line 1162 ENDPART
|
Line 1226 ENDPART
|
'cgi.'.$identifier.'backref' => $URLback,); |
'cgi.'.$identifier.'backref' => $URLback,); |
|
|
$r->print(<<FINALEND); |
$r->print(<<FINALEND); |
<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier"> |
<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$identifier" /> |
</body> |
</body> |
</html> |
</html> |
FINALEND |
FINALEND |
} |
} |
|
|
|
sub num_to_letters { |
|
my ($num) = @_; |
|
my @nums= split('',$num); |
|
my @num_to_let=('A'..'Z'); |
|
my $word; |
|
foreach my $digit (@nums) { $word.=$num_to_let[$digit]; } |
|
return $word; |
|
} |
|
|
|
sub get_CODE { |
|
my ($all_codes,$num,$seed,$size)=@_; |
|
my $max='1'.'0'x$size; |
|
srand($seed); |
|
my $newcode; |
|
while(1) { |
|
$newcode=sprintf("%06d",int(rand($max))); |
|
if (!exists($$all_codes{$newcode})) { |
|
$$all_codes{$newcode}=1; |
|
return &num_to_letters($newcode); |
|
} |
|
} |
|
} |
|
|
sub print_resources { |
sub print_resources { |
my ($r,$helper,$person,$type,$moreenv,$master_seq,$remove_latex_header)=@_; |
my ($r,$helper,$person,$type,$moreenv,$master_seq,$remove_latex_header)=@_; |
my $current_output = ''; |
my $current_output = ''; |
my ($username,$userdomain,$usersection) = split /:/,$person; |
my ($username,$userdomain,$usersection) = split /:/,$person; |
my $fullname = &get_name($username,$userdomain); |
my $fullname = &get_name($username,$userdomain); |
|
if ($person =~ 'anon') { |
|
$fullname = "CODE - ".$moreenv->{'CODE'}; |
|
} |
#goes through all resources, checks if they are available for |
#goes through all resources, checks if they are available for |
#current student, and produces output |
#current student, and produces output |
&Apache::lonnet::delenv('form.counter'); |
&Apache::lonnet::delenv('form.counter'); |
Line 1318 sub printHelper {
|
Line 1406 sub printHelper {
|
my $helper = Apache::lonhelper::helper->new("Printing Helper"); |
my $helper = Apache::lonhelper::helper->new("Printing Helper"); |
$helper->declareVar('symb'); |
$helper->declareVar('symb'); |
$helper->declareVar('postdata'); |
$helper->declareVar('postdata'); |
$helper->declareVar('curseed'); |
$helper->declareVar('curseed'); |
|
$helper->declareVar('probstatus'); |
$helper->declareVar('filename'); |
$helper->declareVar('filename'); |
$helper->declareVar('construction'); |
$helper->declareVar('construction'); |
$helper->declareVar('assignment'); |
$helper->declareVar('assignment'); |
Line 1378 sub printHelper {
|
Line 1467 sub printHelper {
|
if (!$helper->{VARS}->{'curseed'} && $ENV{'form.curseed'}) { |
if (!$helper->{VARS}->{'curseed'} && $ENV{'form.curseed'}) { |
$helper->{VARS}->{'curseed'}=$ENV{'form.curseed'}; |
$helper->{VARS}->{'curseed'}=$ENV{'form.curseed'}; |
} |
} |
|
if (!$helper->{VARS}->{'probstatus'} && $ENV{'form.problemtype'}) { |
|
$helper->{VARS}->{'probstatus'}=$ENV{'form.problemtype'}; |
|
} |
|
|
my $userCanSeeHidden = Apache::lonnavmaps::advancedUser(); |
my $userCanSeeHidden = Apache::lonnavmaps::advancedUser(); |
my $userPriviledged = ($ENV{'request.role'}=~m/^cc\./ or |
my $userPriviledged = ($ENV{'request.role'}=~m/^cc\./ or |
Line 1409 sub printHelper {
|
Line 1501 sub printHelper {
|
my $paramHash; |
my $paramHash; |
|
|
if ($resourceTitle) { |
if ($resourceTitle) { |
push @{$printChoices}, ["<b><i>$resourceTitle</i></b> (what you just saw on the screen)", 'current_document', 'PAGESIZE']; |
push @{$printChoices}, ["<b><i>$resourceTitle</i></b> (".&mt('what you just saw on the screen').")", 'current_document', 'PAGESIZE']; |
} |
} |
|
|
# $r->print($helper->{VARS}->{'postdata'}); |
|
|
|
# Useful filter strings |
# Useful filter strings |
my $isProblem = '$res->is_problem()'; |
my $isProblem = '($res->is_problem()||$res->contains_problem) '; |
$isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden; |
$isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden; |
my $isProblemOrMap = '$res->is_problem() || $res->is_map()'; |
my $isProblemOrMap = '$res->is_problem() || $res->contains_problem() || $res->is_sequence()'; |
my $isNotMap = '!$res->is_map()'; |
my $isNotMap = '!$res->is_sequence()'; |
$isNotMap .= ' && !$res->randomout()' if !$userCanSeeHidden; |
$isNotMap .= ' && !$res->randomout()' if !$userCanSeeHidden; |
my $isMap = '$res->is_map()'; |
my $isMap = '$res->is_map()'; |
my $symbFilter = '$res->symb()'; |
my $symbFilter = '$res->symb()'; |
Line 1435 sub printHelper {
|
Line 1525 sub printHelper {
|
$helper->{VARS}->{'postdata'} && |
$helper->{VARS}->{'postdata'} && |
$helper->{VARS}->{'assignment'}) { |
$helper->{VARS}->{'assignment'}) { |
# Allow problems from sequence |
# Allow problems from sequence |
push @{$printChoices}, ["<b>Problems</b> in <b><i>$sequenceTitle</i></b>", 'map_problems', 'CHOOSE_PROBLEMS']; |
push @{$printChoices}, ["<b>".&mt('Problems')."</b> ".&mt('in')." <b><i>$sequenceTitle</i></b>", 'map_problems', 'CHOOSE_PROBLEMS']; |
# Allow all resources from sequence |
# Allow all resources from sequence |
push @{$printChoices}, ["<b>Resources</b> in <b><i>$sequenceTitle</i></b>", 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; |
push @{$printChoices}, ["<b>".&mt('Resources')."</b> ".&mt('in')." <b><i>$sequenceTitle</i></b>", 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; |
|
|
my $helperFragment = <<HELPERFRAGMENT; |
my $helperFragment = <<HELPERFRAGMENT; |
<state name="CHOOSE_PROBLEMS" title="Select Problem(s) to print"> |
<state name="CHOOSE_PROBLEMS" title="Select Problem(s) to print"> |
<message>(mark them then click "next" button) <br /></message> |
<message>(mark them then click "next" button) <br /></message> |
<resource variable="RESOURCES" multichoice="1" toponly='1' addstatus="1"> |
<resource variable="RESOURCES" multichoice="1" toponly='1' addstatus="1" |
|
closeallpages="1"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<filterfunc>return $isProblem;</filterfunc> |
<filterfunc>return $isProblem;</filterfunc> |
<mapurl>$map</mapurl> |
<mapurl>$map</mapurl> |
Line 1452 sub printHelper {
|
Line 1543 sub printHelper {
|
|
|
<state name="CHOOSE_PROBLEMS_HTML" title="Select Resource(s) to print"> |
<state name="CHOOSE_PROBLEMS_HTML" title="Select Resource(s) to print"> |
<message>(mark them then click "next" button) <br /></message> |
<message>(mark them then click "next" button) <br /></message> |
<resource variable="RESOURCES" multichoice="1" toponly='1' addstatus="1"> |
<resource variable="RESOURCES" multichoice="1" toponly='1' addstatus="1" |
|
closeallpages="1"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<filterfunc>return $isNotMap;</filterfunc> |
<filterfunc>return $isNotMap;</filterfunc> |
<mapurl>$map</mapurl> |
<mapurl>$map</mapurl> |
Line 1471 HELPERFRAGMENT
|
Line 1563 HELPERFRAGMENT
|
&Apache::lonxml::xmlparse($r, 'helper', <<ALL_PROBLEMS); |
&Apache::lonxml::xmlparse($r, 'helper', <<ALL_PROBLEMS); |
<state name="ALL_PROBLEMS" title="Select Problem(s) to print"> |
<state name="ALL_PROBLEMS" title="Select Problem(s) to print"> |
<message>(mark them then click "next" button) <br /></message> |
<message>(mark them then click "next" button) <br /></message> |
<resource variable="RESOURCES" multichoice="1" |
<resource variable="RESOURCES" toponly='0' multichoice="1" |
suppressEmptySequences='1' addstatus="1"> |
suppressEmptySequences='0' addstatus="1" closeallpages="1"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<filterfunc>return $isProblemOrMap;</filterfunc> |
<filterfunc>return $isProblemOrMap;</filterfunc> |
<choicefunc>return $isProblem;</choicefunc> |
<choicefunc>return $isNotMap;</choicefunc> |
<valuefunc>return $symbFilter;</valuefunc> |
<valuefunc>return $symbFilter;</valuefunc> |
</resource> |
</resource> |
</state> |
</state> |
ALL_PROBLEMS |
ALL_PROBLEMS |
|
|
if ($helper->{VARS}->{'assignment'}) { |
if ($helper->{VARS}->{'assignment'}) { |
push @{$printChoices}, ["<b>Problems</b> from <b><i>$sequenceTitle</i></b> for <b>selected students</b>", 'problems_for_students', 'CHOOSE_STUDENTS']; |
push @{$printChoices}, ["<b>".&mt('Problems')."</b> ".&mt('from')." <b><i>$sequenceTitle</i></b> ".&mt('for')." <b>".&mt('selected students')."</b>", 'problems_for_students', 'CHOOSE_STUDENTS']; |
push @{$printChoices}, ["<b>Problems</b> from <b><i>$sequenceTitle</i></b> for <b>anonymous students</b>", 'problems_for_anonymous', 'CHOOSE_ANON1']; |
push @{$printChoices}, ["<b>".&mt('Problems')."</b> ".&mt('from')." <b><i>$sequenceTitle</i></b> ".&mt('for')." <b>".&mt('anonymous students')."</b>", 'problems_for_anon', 'CHOOSE_ANON1']; |
} |
} |
my $resource_selector=<<RESOURCE_SELECTOR; |
my $resource_selector=<<RESOURCE_SELECTOR; |
<message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message> |
<message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message> |
<resource variable="RESOURCES" multichoice="1" addstatus="1"> |
<resource variable="RESOURCES" multichoice="1" addstatus="1" |
|
closeallpages="1"> |
<filterfunc>return $isProblem;</filterfunc> |
<filterfunc>return $isProblem;</filterfunc> |
<mapurl>$map</mapurl> |
<mapurl>$map</mapurl> |
<valuefunc>return $symbFilter;</valuefunc> |
<valuefunc>return $symbFilter;</valuefunc> |
Line 1509 RESOURCE_SELECTOR
|
Line 1602 RESOURCE_SELECTOR
|
$resource_selector |
$resource_selector |
</state> |
</state> |
CHOOSE_STUDENTS |
CHOOSE_STUDENTS |
|
|
|
my $cdom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
|
my $cnum = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
|
my @names=&Apache::lonnet::getkeys('CODEs',$cdom,$cnum); |
|
my $namechoice='<choice></choice>'; |
|
foreach my $name (@names) { |
|
if ($name =~ /^error: 2 /) { next; } |
|
$namechoice.='<choice computer="'.$name.'">'.$name.'</choice>'; |
|
} |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON1); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON1); |
<state name="CHOOSE_ANON1" title="Select Students and Resources"> |
<state name="CHOOSE_ANON1" title="Select Students and Resources"> |
<message><hr width='33%' /><b>How many Anonymous exams to print?</b></message> |
<nextstate>PAGESIZE</nextstate> |
|
<message><hr width='33%' /><b>Number of anonymous assignments to print?</b></message> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"></string> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"></string> |
|
<message><br /><b>Names to store the CODEs under for later:</b></message> |
|
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
|
<message><hr width='33%' /></message> |
|
<message><b>Reprint a set of saved CODEs:</b></message> |
|
<dropdown variable="REUSE_OLD_CODES"> |
|
$namechoice |
|
</dropdown> |
<message><hr width='33%' /></message> |
<message><hr width='33%' /></message> |
$resource_selector |
$resource_selector |
</state> |
</state> |
Line 1520 CHOOSE_ANON1
|
Line 1630 CHOOSE_ANON1
|
|
|
|
|
if ($helper->{VARS}->{'assignment'}) { |
if ($helper->{VARS}->{'assignment'}) { |
push @{$printChoices}, ["<b>Resources</b> from <b><i>$sequenceTitle</i></b> for <b>selected students</b>", 'resources_for_students', 'CHOOSE_STUDENTS1']; |
push @{$printChoices}, ["<b>".&mt('Resources')."</b> ".&mt('from')." <b><i>$sequenceTitle</i></b> ".&mt('for')." <b>".&mt('selected students')."</b>", 'resources_for_students', 'CHOOSE_STUDENTS1']; |
push @{$printChoices}, ["<b>Resources</b> from <b><i>$sequenceTitle</i></b> for <b>anonymous students</b>", 'resources_for_anonymous', 'CHOOSE_ANON2']; |
push @{$printChoices}, ["<b>".&mt('Resources')."</b> ".&mt('from')." <b><i>$sequenceTitle</i></b> ".&mt('for')." <b>".&mt('anonymous students')."</b>", 'resources_for_anon', 'CHOOSE_ANON2']; |
} |
} |
|
|
|
|
$resource_selector=<<RESOURCE_SELECTOR; |
$resource_selector=<<RESOURCE_SELECTOR; |
<message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message> |
<message><br /><big><i><b>Select resources for the assignment</b></i></big><br /></message> |
<resource variable="RESOURCES" multichoice="1" addstatus="1"> |
<resource variable="RESOURCES" multichoice="1" addstatus="1" |
|
closeallpages="1"> |
<filterfunc>return $isNotMap;</filterfunc> |
<filterfunc>return $isNotMap;</filterfunc> |
<mapurl>$map</mapurl> |
<mapurl>$map</mapurl> |
<valuefunc>return $symbFilter;</valuefunc> |
<valuefunc>return $symbFilter;</valuefunc> |
Line 1552 CHOOSE_STUDENTS1
|
Line 1663 CHOOSE_STUDENTS1
|
|
|
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON2); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_ANON2); |
<state name="CHOOSE_ANON2" title="Select Students and Resources"> |
<state name="CHOOSE_ANON2" title="Select Students and Resources"> |
<message><hr width='33%' /><b>How many Anonymous exams to print?</b></message> |
<nextstate>PAGESIZE</nextstate> |
|
<message><hr width='33%' /><b>Number of anonymous assignments to print?</b></message> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"></string> |
<string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5"></string> |
|
<message><br /><b>Names to store the CODEs under for later:</b></message> |
|
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
|
<message><hr width='33%' /></message> |
|
<message><b>Reprint a set of saved CODEs:</b></message> |
|
<dropdown variable="REUSE_OLD_CODES"> |
|
$namechoice |
|
</dropdown> |
<message><hr width='33%' /></message> |
<message><hr width='33%' /></message> |
$resource_selector |
$resource_selector |
</state> |
</state> |
Line 1562 CHOOSE_ANON2
|
Line 1681 CHOOSE_ANON2
|
|
|
# FIXME: That RE should come from a library somewhere. |
# FIXME: That RE should come from a library somewhere. |
if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) or defined $helper->{'VARS'}->{'construction'}) and $ENV{'request.role.adv'} and $subdir ne '/home/httpd/html/res/') { |
if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) or defined $helper->{'VARS'}->{'construction'}) and $ENV{'request.role.adv'} and $subdir ne '/home/httpd/html/res/') { |
push @{$printChoices}, ["<b>Problems</b> from current subdirectory <b><i>$subdir</i></b>", 'problems_from_directory', 'CHOOSE_FROM_SUBDIR']; |
push @{$printChoices}, ["<b>".&mt('Problems')."</b> ".&mt('from current subdirectory')." <b><i>$subdir</i></b>", 'problems_from_directory', 'CHOOSE_FROM_SUBDIR']; |
|
|
my $f = '$filename'; |
my $f = '$filename'; |
my $xmlfrag = <<CHOOSE_FROM_SUBDIR; |
my $xmlfrag = <<CHOOSE_FROM_SUBDIR; |
Line 1605 CHOOSE_FROM_SUBDIR
|
Line 1724 CHOOSE_FROM_SUBDIR
|
</state> |
</state> |
<state name="CHOOSE_FROM_ANY_SEQUENCE" title="Select Resources To Print"> |
<state name="CHOOSE_FROM_ANY_SEQUENCE" title="Select Resources To Print"> |
<message>(mark desired resources then click "next" button) <br /></message> |
<message>(mark desired resources then click "next" button) <br /></message> |
<resource variable="RESOURCES" multichoice="1" toponly='1' addstatus="1"> |
<resource variable="RESOURCES" multichoice="1" toponly='1' addstatus="1" |
|
closeallpages="1"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<filterfunc>return $isProblem</filterfunc> |
<filterfunc>return $isProblem</filterfunc> |
<mapurl evaluate='1'>return '$escapedSequenceName';</mapurl> |
<mapurl evaluate='1'>return '$escapedSequenceName';</mapurl> |
Line 1638 CHOOSE_FROM_ANY_SEQUENCE
|
Line 1758 CHOOSE_FROM_ANY_SEQUENCE
|
$paramHash->{CHOICES} = [ |
$paramHash->{CHOICES} = [ |
['Without Answers', 'yes'], |
['Without Answers', 'yes'], |
['With Answers', 'no'], |
['With Answers', 'no'], |
['Only Answers', 'only'] ]; |
['Only Answers', 'only'], |
|
['As Exam Problem', 'exam'] |
|
]; |
Apache::lonhelper::dropdown->new(); |
Apache::lonhelper::dropdown->new(); |
addMessage("</td></tr>"); |
addMessage("</td></tr>"); |
$startedTable = 1; |
$startedTable = 1; |
Line 1690 CHOOSE_FROM_ANY_SEQUENCE
|
Line 1812 CHOOSE_FROM_ANY_SEQUENCE
|
if ($helper->{'VARS'}->{'construction'}) { |
if ($helper->{'VARS'}->{'construction'}) { |
my $stylevalue=$ENV{'construct.style'}; |
my $stylevalue=$ENV{'construct.style'}; |
my $xmlfrag .= <<"RNDSEED"; |
my $xmlfrag .= <<"RNDSEED"; |
<message><tr><td align='right'>Use random seed: </td><td></message> |
<message><tr><td align='right'>Use random seed: </td><td></message> |
<string variable="curseed" size="15" maxlength="15"> |
<string variable="curseed" size="15" maxlength="15"> |
<defaultvalue> |
<defaultvalue> |
return $helper->{VARS}->{'curseed'}; |
return $helper->{VARS}->{'curseed'}; |