Diff for /loncom/homework/structuretags.pm between versions 1.512.2.21 and 1.512.2.22

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')) {

Removed from v.1.512.2.21  
changed lines
  Added in v.1.512.2.22


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>