version 1.673, 2021/04/29 17:45:22
|
version 1.678, 2022/06/11 14:38:27
|
Line 1236 sub is_code_valid {
|
Line 1236 sub is_code_valid {
|
my ($code_type, $code_length) = ('letter', 6); # defaults. |
my ($code_type, $code_length) = ('letter', 6); # defaults. |
my @lines = &Apache::lonnet::get_scantronformat_file(); |
my @lines = &Apache::lonnet::get_scantronformat_file(); |
foreach my $line (@lines) { |
foreach my $line (@lines) { |
|
next if (($line =~ /^\#/) || ($line eq '')); |
my ($name, $type, $length) = (split(/:/, $line))[0,2,4]; |
my ($name, $type, $length) = (split(/:/, $line))[0,2,4]; |
if($name eq $code_option) { |
if($name eq $code_option) { |
$code_length = $length; |
$code_length = $length; |
Line 1339 sub latex_header_footer_remove {
|
Line 1340 sub latex_header_footer_remove {
|
# necessity is determined by the problem_split param. |
# necessity is determined by the problem_split param. |
# |
# |
sub encapsulate_minipage { |
sub encapsulate_minipage { |
my ($text) = @_; |
my ($text,$problem_split) = @_; |
if (!($env{'form.problem.split'} =~ /yes/i)) { |
if (!($problem_split =~ /yes/i)) { |
$text = '\begin{minipage}{\textwidth}'.$text.'\end{minipage}'; |
$text = '\begin{minipage}{\textwidth}'.$text.'\end{minipage}'; |
} |
} |
return $text; |
return $text; |
Line 2549 sub print_construction_sequence {
|
Line 2550 sub print_construction_sequence {
|
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
$body.=&path_to_problem($urlp,$LaTeXwidth); |
$body.=&path_to_problem($urlp,$LaTeXwidth); |
$body.='\vskip 1 mm '.$answer.'\end{document}'; |
$body.='\vskip 1 mm '.$answer.'\end{document}'; |
$body = &encapsulate_minipage($body); |
$body = &encapsulate_minipage($body,$answerform{'problem_split'}); |
$texversion.=$body; |
$texversion.=$body; |
} |
} |
} |
} |
Line 3014 ENDPART
|
Line 3015 ENDPART
|
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
$body .= &path_to_problem ($urlp,$LaTeXwidth); |
$body .= &path_to_problem ($urlp,$LaTeXwidth); |
$body .='\vskip 1 mm '.$answer; |
$body .='\vskip 1 mm '.$answer; |
$body = &encapsulate_minipage($body); |
$body = &encapsulate_minipage($body,$answerform{'problem_split'}); |
$texversion .= $body; |
$texversion .= $body; |
} else { |
} else { |
$texversion=''; |
$texversion=''; |
Line 3240 ENDPART
|
Line 3241 ENDPART
|
my @lines = &Apache::lonnet::get_scantronformat_file(); |
my @lines = &Apache::lonnet::get_scantronformat_file(); |
my ($code_type,$code_length,$bubbles_per_row)=('letter',6,10); |
my ($code_type,$code_length,$bubbles_per_row)=('letter',6,10); |
foreach my $line (@lines) { |
foreach my $line (@lines) { |
chomp($line); |
next if (($line =~ /^\#/) || ($line eq '')); |
my ($name,$type,$length,$bubbles_per_item) = |
my ($name,$type,$length,$bubbles_per_item) = |
(split(/:/,$line))[0,2,4,17]; |
(split(/:/,$line))[0,2,4,17]; |
if ($name eq $code_option) { |
if ($name eq $code_option) { |
Line 3252 ENDPART
|
Line 3253 ENDPART
|
} |
} |
} |
} |
} |
} |
my ($randomorder,$randompick,$map); |
my $map; |
if ($helper->{VARS}{'symb'}) { |
if ($helper->{VARS}{'symb'}) { |
($map, my $id, my $resource) = |
($map, my $id, my $resource) = |
&Apache::lonnet::decode_symb($helper->{VARS}{'symb'}); |
&Apache::lonnet::decode_symb($helper->{VARS}{'symb'}); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
if (defined($navmap)) { |
|
if ($map) { |
|
my $mapres = $navmap->getResourceByUrl($map); |
|
$randomorder = $mapres->randomorder(); |
|
$randompick = $mapres->randompick(); |
|
} |
|
} |
|
} |
} |
my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); |
my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); |
$moreenv{'problem_split'} = $parmhash{'problem_stream_switch'}; |
$moreenv{'problem_split'} = $parmhash{'problem_stream_switch'}; |
Line 3332 ENDPART
|
Line 3325 ENDPART
|
} else { |
} else { |
$moreenv{'CODE'}=&num_to_letters($code); |
$moreenv{'CODE'}=&num_to_letters($code); |
} |
} |
my $actual_seq = \@master_seq; |
$env{'form.CODE'} = $moreenv{'CODE'}; |
if ($randomorder || $randompick) { |
my $actual_seq = master_seq_to_person_seq($map, \@master_seq, |
$env{'form.CODE'} = $moreenv{'CODE'}; |
undef, |
$actual_seq = master_seq_to_person_seq($map, \@master_seq, |
$moreenv{'CODE'}, $nohidemap); |
undef, |
delete($env{'form.CODE'}); |
$moreenv{'CODE'}, $nohidemap); |
|
delete($env{'form.CODE'}); |
|
} |
|
my ($output,$fullname, $printed)= |
my ($output,$fullname, $printed)= |
&print_resources($r,$helper,'anonymous',$type,\%moreenv, |
&print_resources($r,$helper,'anonymous',$type,\%moreenv, |
$actual_seq,$flag_latex_header_remove, |
$actual_seq,$flag_latex_header_remove, |
Line 3738 sub print_resources {
|
Line 3728 sub print_resources {
|
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm '; |
$body .=&path_to_problem($res_url,$LaTeXwidth); |
$body .=&path_to_problem($res_url,$LaTeXwidth); |
$body .='\vskip 1 mm '.$ansrendered; |
$body .='\vskip 1 mm '.$ansrendered; |
$body = &encapsulate_minipage($body); |
$body = &encapsulate_minipage($body,$answerenv{'problem_split'}); |
$rendered = $header.$body; |
$rendered = $header.$body; |
} |
} |
} |
} |
Line 3828 sub print_resources {
|
Line 3818 sub print_resources {
|
$message = &mt('No incomplete resources'); |
$message = &mt('No incomplete resources'); |
} |
} |
if ($message) { |
if ($message) { |
$current_output = &encapsulate_minipage("\\vskip -10mm \n$message\n \\vskip 100 mm { }\n"); |
$current_output = &encapsulate_minipage("\\vskip -10mm \n$message\n \\vskip 100 mm { }\n",$moreenv->{'problem_split'}); |
} |
} |
if ($remove_latex_header eq "NO") { |
if ($remove_latex_header eq "NO") { |
$current_output = &print_latex_header() . $current_output; |
$current_output = &print_latex_header() . $current_output; |
Line 3890 sub handler {
|
Line 3880 sub handler {
|
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $clientip = &Apache::lonnet::get_requestor_ip($r); |
my ($blocked,$blocktext) = |
my ($blocked,$blocktext) = |
&Apache::loncommon::blocking_status('printout',$cnum,$cdom); |
&Apache::loncommon::blocking_status('printout',$clientip,$cnum,$cdom); |
if ($blocked) { |
if ($blocked) { |
my $checkrole = "cm./$cdom/$cnum"; |
my $checkrole = "cm./$cdom/$cnum"; |
if ($env{'request.course.sec'} ne '') { |
if ($env{'request.course.sec'} ne '') { |