version 1.597, 2011/09/15 12:09:44
|
version 1.601, 2011/10/26 02:09:42
|
Line 123 sub create_incomplete_folder_selstud_hel
|
Line 123 sub create_incomplete_folder_selstud_hel
|
|
|
my $format_chooser = &generate_format_selector($helper, |
my $format_chooser = &generate_format_selector($helper, |
'Format of the print job', |
'Format of the print job', |
'','CHOOSE_STUDENTS_INCOMPLETE_FORMAT'); # end state. |
'CHOOSE_STUDENTS_INCOMPLETE_FORMAT'); # end state. |
|
|
return $resource_chooser . $student_chooser . $format_chooser; |
return $resource_chooser . $student_chooser . $format_chooser; |
} |
} |
Line 172 sub create_incomplete_course_helper {
|
Line 172 sub create_incomplete_course_helper {
|
|
|
my $format = &generate_format_selector($helper, |
my $format = &generate_format_selector($helper, |
'Format of the print job', |
'Format of the print job', |
'', |
|
'INCOMPLETE_PROBLEMS_COURSE_FORMAT'); # end state. |
'INCOMPLETE_PROBLEMS_COURSE_FORMAT'); # end state. |
|
|
return $resource_chooser . $people_chooser . $format; |
return $resource_chooser . $people_chooser . $format; |
Line 356 sub generate_code_selector {
|
Line 355 sub generate_code_selector {
|
<message></td><td></message> |
<message></td><td></message> |
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
<message></td></tr><tr><td></message> |
<message></td></tr><tr><td></message> |
<message><b>Bubble sheet type:</b></message> |
<message><b>Bubblesheet type:</b></message> |
<message></td><td></message> |
<message></td><td></message> |
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
$bubble_types |
$bubble_types |
Line 395 CHOOSE_ANON1
|
Line 394 CHOOSE_ANON1
|
return $result; |
return $result; |
} |
} |
|
|
|
# Returns the XML for choosing how assignments are to be formatted |
|
# that text must still be parsed by the helper xml parser. |
|
# Parameters: 3 (required) |
|
|
|
# helper - The helper; $helper->{'VARS'}->{'PRINT_TYPE'} used |
|
# to check if splitting PDFs by section can be offered. |
|
# title - Title for the current state. |
|
# this_state - State name of the chooser. |
|
|
sub generate_format_selector { |
sub generate_format_selector { |
my ($helper,$title,$nextstate, $thisstate) = @_; |
my ($helper,$title,$this_state) = @_; |
my $secpdfoption; |
my $secpdfoption; |
my $state = 'PRINT_FORMATTING'; |
|
if ($thisstate) { |
|
$state = $thisstate; |
|
} |
|
unless (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon') || |
unless (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon') || |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon_page') || |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon_page') || |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon') ) { |
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon') ) { |
$secpdfoption = '<choice computer="sections">Each PDF contains exactly one section</choice>'; |
$secpdfoption = '<choice computer="sections">Each PDF contains exactly one section</choice>'; |
} |
} |
return <<RESOURCE_SELECTOR; |
return <<RESOURCE_SELECTOR; |
<state name="$state" title="$title"> |
<state name="$this_state" title="$title"> |
$nextstate |
|
<message><br /><big><i><b>How should the results be printed?</b></i></big><br /></message> |
<message><br /><big><i><b>How should the results be printed?</b></i></big><br /></message> |
<choices variable="EMPTY_PAGES"> |
<choices variable="EMPTY_PAGES"> |
<choice computer='0'>Start each student\'s assignment on a new page/column (add a pagefeed after each assignment)</choice> |
<choice computer='0'>Start each student\'s assignment on a new page/column (add a pagefeed after each assignment)</choice> |
Line 468 sub incomplete {
|
Line 471 sub incomplete {
|
# $helper - The helper we need $helper->{'VARS'}->{'symb'} |
# $helper - The helper we need $helper->{'VARS'}->{'symb'} |
# to construct the navmap and the iteration. |
# to construct the navmap and the iteration. |
# $seq - The original set of resources to print |
# $seq - The original set of resources to print |
# (really an array of resource names |
# (really an array of resource names (array of symb's). |
# $who - Student/domain for whome the sequence will be generated. |
# $who - Student/domain for whome the sequence will be generated. |
# |
# |
# Implicit inputs: |
# Implicit inputs: |
Line 483 sub master_seq_to_person_seq {
|
Line 486 sub master_seq_to_person_seq {
|
|
|
my ($username, $userdomain, $usersection) = split(/:/, $who); |
my ($username, $userdomain, $usersection) = split(/:/, $who); |
|
|
|
|
# Toss the sequence up into a hash so that we have O(1) lookup time. |
# Toss the sequence up into a hash so that we have O(1) lookup time. |
# on the items that come out of the user's list of resources. |
# on the items that come out of the user's list of resources. |
# |
# |
Line 512 sub master_seq_to_person_seq {
|
Line 516 sub master_seq_to_person_seq {
|
my $curres; |
my $curres; |
while ($curres = $iterator->next()) { |
while ($curres = $iterator->next()) { |
# |
# |
# Only process resources..that re not removed by randomout... |
# Only process resources..that are not removed by randomout... |
|
# and are selected for printint as well. |
# |
# |
if (! exists $nonResourceItems{$curres} && ! $curres->randomout()) { |
if (! exists $nonResourceItems{$curres} && ! $curres->randomout()) { |
my $symb = $curres->symb(); |
my $symb = $curres->symb(); |
Line 1924 sub print_page_in_course {
|
Line 1929 sub print_page_in_course {
|
} else { |
} else { |
$texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm '; |
$texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm '; |
my $URLpath=$urlp; |
my $URLpath=$urlp; |
$URLpath=~s/~([^\/]+)/public_html\/$1\/$1/; |
#$URLpath=~s/~([^\/]+)/public_html\/$1\/$1/; |
$texversion.=&path_to_problem($URLpath,$LaTeXwidth); |
$texversion.=&path_to_problem($URLpath,$LaTeXwidth); |
} |
} |
$texversion.='\vskip 1 mm '.$answer.'\end{document}'; |
$texversion.='\vskip 1 mm '.$answer.'\end{document}'; |
Line 2044 sub recently_generated {
|
Line 2049 sub recently_generated {
|
# A reference to a page break hash. |
# A reference to a page break hash. |
# |
# |
# |
# |
# use Data::Dumper; |
use Data::Dumper; |
# sub dump_helper_vars { |
# sub dump_helper_vars { |
# my ($helper) = @_; |
# my ($helper) = @_; |
# my $helpervars = Dumper($helper->{'VARS'}); |
# my $helpervars = Dumper($helper->{'VARS'}); |
Line 2264 sub print_construction_sequence {
|
Line 2269 sub print_construction_sequence {
|
# IF sequence, recurse: |
# IF sequence, recurse: |
|
|
if ($urlp =~ /\.sequence$/) { |
if ($urlp =~ /\.sequence$/) { |
|
# |
|
# FIXME: this does not work for co-authors |
my $sequence_url = $urlp; |
my $sequence_url = $urlp; |
my $domain = $env{'user.domain'}; # Constr. space only on local |
my $domain = $env{'user.domain'}; # Constr. space only on local |
my $user = $env{'user.name'}; |
my $user = $env{'user.name'}; |
|
# FIXME: the substitutions below do not seem to make sense |
$sequence_url =~ s/^\/res\/$domain/\/home/; |
$sequence_url =~ s/^\/res\/$domain/\/home/; |
$sequence_url =~ s/^(\/home\/$user)/$1\/public_html/; |
$sequence_url =~ s/^(\/home\/$user)/$1\/public_html/; |
# $sequence_url =~ s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; |
# $sequence_url =~ s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; |
Line 2510 ENDPART
|
Line 2517 ENDPART
|
} else { |
} else { |
$texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm '; |
$texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm '; |
my $URLpath=$cleanURL; |
my $URLpath=$cleanURL; |
|
# FIXME: unclear URL path, not sure when this would occur |
$URLpath=~s/~([^\/]+)/public_html\/$1\/$1/; |
$URLpath=~s/~([^\/]+)/public_html\/$1\/$1/; |
$texversion.=&path_to_problem($URLpath,$LaTeXwidth); |
$texversion.=&path_to_problem($URLpath,$LaTeXwidth); |
} |
} |
Line 2545 ENDPART
|
Line 2553 ENDPART
|
&& $currentURL=~/\.(sequence|page)$/ && $helper->{'VARS'}->{'construction'} eq '1') { |
&& $currentURL=~/\.(sequence|page)$/ && $helper->{'VARS'}->{'construction'} eq '1') { |
#printing content of sequence from the construction space |
#printing content of sequence from the construction space |
|
|
|
# FIXME: unclear how this would work |
$currentURL=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; |
$currentURL=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|; |
$result .= &print_construction_sequence($currentURL, $helper, %form, |
$result .= &print_construction_sequence($currentURL, $helper, %form, |
$LaTeXwidth); |
$LaTeXwidth); |
Line 3262 sub print_resources {
|
Line 3270 sub print_resources {
|
my ($username,$userdomain,$usersection) = split /:/,$person; |
my ($username,$userdomain,$usersection) = split /:/,$person; |
my $fullname = &get_name($username,$userdomain); |
my $fullname = &get_name($username,$userdomain); |
my $namepostfix = "\\\\"; # Both anon and not anon should get the same vspace. |
my $namepostfix = "\\\\"; # Both anon and not anon should get the same vspace. |
|
|
# |
# |
# Figure out if we need to filter the output by |
# Figure out if we need to filter the output by |
# the incomplete problems for that person |
# the incomplete problems for that person |
Line 3994 ALL_PROBLEMS
|
Line 4003 ALL_PROBLEMS
|
$isProblem, '', $symbFilter, |
$isProblem, '', $symbFilter, |
$start_new_option); |
$start_new_option); |
$resource_selector .= &generate_format_selector($helper, |
$resource_selector .= &generate_format_selector($helper, |
'How should results be printed?'). |
'How should results be printed?', |
|
'PRINT_FORMATTING'). |
&generate_resource_chooser('CHOOSE_STUDENTS_PAGE', |
&generate_resource_chooser('CHOOSE_STUDENTS_PAGE', |
'Select Problem(s) to print', |
'Select Problem(s) to print', |
"multichoice='1' addstatus='1' closeallpages ='1'", |
"multichoice='1' addstatus='1' closeallpages ='1'", |
Line 4128 ALL_PROBLEMS
|
Line 4138 ALL_PROBLEMS
|
</state> |
</state> |
RESOURCE_SELECTOR |
RESOURCE_SELECTOR |
|
|
my $nextstate = '<nextstate>NUMBER_PER_PDF</nextstate>'; |
|
$resource_selector .= &generate_format_selector($helper, |
$resource_selector .= &generate_format_selector($helper, |
'Format of the print job', |
'Format of the print job', |
$nextstate); |
'PRINT_FORMATTING'); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS1); |
&Apache::lonxml::xmlparse($r, 'helper', <<CHOOSE_STUDENTS1); |
<state name="CHOOSE_STUDENTS1" title="Select Students and Resources"> |
<state name="CHOOSE_STUDENTS1" title="Select Students and Resources"> |
<choices variable='student_sort'> |
<choices variable='student_sort'> |
Line 4172 CHOOSE_STUDENTS1
|
Line 4181 CHOOSE_STUDENTS1
|
<message></td><td></message> |
<message></td><td></message> |
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
<string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" /> |
<message></td></tr><tr><td></message> |
<message></td></tr><tr><td></message> |
<message><b>Bubble sheet type:</b></message> |
<message><b>Bubblesheet type:</b></message> |
<message></td><td></message> |
<message></td><td></message> |
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
<dropdown variable="CODE_OPTION" multichoice="0" allowempty="0"> |
$codechoice |
$codechoice |