version 1.512.2.21, 2019/11/04 20:50:57
|
version 1.512.2.22, 2019/11/05 18:14:39
|
Line 652 sub setup_rndseed {
|
Line 652 sub setup_rndseed {
|
} |
} |
if ($Apache::lonhomework::type eq 'randomizetry') { |
if ($Apache::lonhomework::type eq 'randomizetry') { |
my $partfortries = $Apache::inputtags::part; |
my $partfortries = $Apache::inputtags::part; |
|
# |
|
# Where question type is "randomizetry" for a problem containing |
|
# a single part (and unless type is explicitly set to not be |
|
# "randomizetry" for that part), the number of tries used to |
|
# determine randomization will be for that part, and randomization |
|
# from calls to &random() in a perl script block before the part tag, |
|
# will change based on the number of tries, and value of the |
|
# "randomizeontries" parameter in effect for the single part. |
|
# |
if (ref($probpartlist) eq 'ARRAY') { |
if (ref($probpartlist) eq 'ARRAY') { |
if ((@{$probpartlist} == 1) && ($probpartlist->[0] ne $Apache::inputtags::part)) { |
if ((@{$probpartlist} == 1) && ($probpartlist->[0] ne $partfortries)) { |
$partfortries = $probpartlist->[0]; |
if (&Apache::lonnet::EXT('resource.'.$probpartlist->[0].'.type') eq 'randomizetry') { |
if (&Apache::lonnet::EXT("resource.$partfortries.questiontype") eq 'randomizetry') { |
|
$partfortries = $probpartlist->[0]; |
$partfortries = $probpartlist->[0]; |
} else { |
} else { |
$partfortries = ''; |
$partfortries = ''; |
Line 1566 sub start_problem {
|
Line 1574 sub start_problem {
|
$name); |
$name); |
} elsif (($target eq 'grade') && ($Apache::lonhomework::type eq 'randomizetry')) { |
} elsif (($target eq 'grade') && ($Apache::lonhomework::type eq 'randomizetry')) { |
my ($symb)= &Apache::lonnet::whichuser(); |
my ($symb)= &Apache::lonnet::whichuser(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
if ($symb ne '') { |
if (ref($navmap)) { |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $res = $navmap->getBySymb($symb); |
if (ref($navmap)) { |
if (ref($res)) { |
my $res = $navmap->getBySymb($symb); |
$probpartlist = $res->parts(); |
if (ref($res)) { |
|
$probpartlist = $res->parts(); |
|
} |
} |
} |
} |
} |
} |
} |
Line 1581 sub start_problem {
|
Line 1591 sub start_problem {
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex') { |
$target eq 'tex') { |
|
|
|
my ($symb) = &Apache::lonnet::whichuser(); |
#handle rand seed in construction space |
#handle rand seed in construction space |
|
if (($env{'request.state'} eq 'construct') || ($symb eq '')) { |
|
my $partorder=&Apache::lonnet::metadata($env{'request.uri'},'partorder'); |
|
if ($partorder ne '') { |
|
@{$probpartlist} = split(/,/,$partorder); |
|
} |
|
} |
my $rndseed=&setup_rndseed($safeeval,$target,$probpartlist); |
my $rndseed=&setup_rndseed($safeeval,$target,$probpartlist); |
if (($target eq 'grade') && &Apache::response::submitted()) { |
if (($target eq 'grade') && &Apache::response::submitted()) { |
if ($Apache::lonhomework::type eq 'randomizetry') { |
if ($Apache::lonhomework::type eq 'randomizetry') { |
Line 1596 sub start_problem {
|
Line 1613 sub start_problem {
|
} |
} |
} |
} |
} |
} |
my ($symb)=&Apache::lonnet::whichuser(); |
|
|
|
if ($env{'request.state'} ne "construct" && |
if ($env{'request.state'} ne "construct" && |
($symb eq '' || $Apache::lonhomework::type eq 'practice')) { |
($symb eq '' || $Apache::lonhomework::type eq 'practice')) { |