Diff for /loncom/homework/structuretags.pm between versions 1.563 and 1.564

version 1.563, 2019/08/11 12:27:11 version 1.564, 2019/10/31 15:01:22
Line 669  sub get_resource_name { Line 669  sub get_resource_name {
 sub setup_rndseed {  sub setup_rndseed {
     my ($safeeval,$target,$probpartlist)=@_;      my ($safeeval,$target,$probpartlist)=@_;
     my ($symb)=&Apache::lonnet::whichuser();      my ($symb)=&Apache::lonnet::whichuser();
     my ($questiontype,$set_safespace,$rndseed);      my ($questiontype,$set_safespace,$rndseed,$numtries,$reqtries);
     if ($target eq 'analyze') {      if ($target eq 'analyze') {
         $questiontype = $env{'form.grade_questiontype'};          $questiontype = $env{'form.grade_questiontype'};
     }      }
     unless (defined($questiontype)) {      unless (defined($questiontype)) {
         $questiontype = $Apache::lonhomework::type;          $questiontype = $Apache::lonhomework::type;
     }      }
       if ($Apache::lonhomework::type eq 'randomizetry') {
           my $partfortries = $Apache::inputtags::part;
           if (ref($probpartlist) eq 'ARRAY') {
               if ((@{$probpartlist} == 1) && ($probpartlist->[0] ne $Apache::inputtags::part)) {
                   $partfortries = $probpartlist->[0];
               }
           }
           $numtries = $Apache::lonhomework::history{"resource.$partfortries.tries"};
           $reqtries = &Apache::lonnet::EXT("resource.$partfortries.randomizeontries");
       }
     if (($env{'request.state'} eq "construct")      if (($env{'request.state'} eq "construct")
         || ($symb eq '')          || ($symb eq '')
         || ($Apache::lonhomework::type eq 'practice')          || ($Apache::lonhomework::type eq 'practice')
Line 695  sub setup_rndseed { Line 705  sub setup_rndseed {
  }   }
         if (($env{'request.state'} eq "construct") &&           if (($env{'request.state'} eq "construct") && 
             ($Apache::lonhomework::type eq 'randomizetry')) {              ($Apache::lonhomework::type eq 'randomizetry')) {
             my $tries = $Apache::lonhomework::history{"resource.$Apache::inputtags::part.tries"};              if ($numtries) {
             if ($tries) {                  if (($reqtries =~ /^\d+$/) && ($reqtries > 1)) {
                 $rndseed += $tries;                      my $inc = int($numtries/$reqtries);
                       $rndseed += $inc;
                   } else {
                       $rndseed += $numtries;
                   }
             }              }
             $env{'form.'.$Apache::inputtags::part.'.rndseed'}=$rndseed;              $env{'form.'.$Apache::inputtags::part.'.rndseed'}=$rndseed;
         }          }
Line 735  sub setup_rndseed { Line 749  sub setup_rndseed {
         }          }
         unless (($target eq 'analyze') && (defined($rndseed))) {          unless (($target eq 'analyze') && (defined($rndseed))) {
             $rndseed=&Apache::lonnet::rndseed();              $rndseed=&Apache::lonnet::rndseed();
             my $partfortries = $Apache::inputtags::part;              my $curr_try = $numtries;
             if (ref($probpartlist) eq 'ARRAY') {  
                 if ((@{$probpartlist} == 1) && ($probpartlist->[0] ne $Apache::inputtags::part)) {  
                     $partfortries = $probpartlist->[0];  
                 }  
             }  
             my $curr_try = $Apache::lonhomework::history{"resource.$partfortries.tries"};  
             if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {              if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
                 $curr_try ++;                  $curr_try ++;
             }              }
Line 749  sub setup_rndseed { Line 757  sub setup_rndseed {
                 $rndseed = $1;                  $rndseed = $1;
             }              }
             if ($curr_try) {              if ($curr_try) {
                 my $reqtries = &Apache::lonnet::EXT("resource.$partfortries.randomizeontries");  
                 if (($reqtries =~ /^\d+$/) && ($reqtries > 1)) {                  if (($reqtries =~ /^\d+$/) && ($reqtries > 1)) {
                     my $inc = int(($curr_try-1)/$reqtries);                      my $inc = int(($curr_try-1)/$reqtries);
                     $rndseed += $inc;                      $rndseed += $inc;
Line 1930  sub start_problem { Line 1937  sub start_problem {
                     $result.= '<button type="submit" name="resetdata" '.                      $result.= '<button type="submit" name="resetdata" '.
                         'value="new_problem_variation">'.&mt('New Problem Variation').'</button>'.                          'value="new_problem_variation">'.&mt('New Problem Variation').'</button>'.
                         &practice_problem_header().'<hr />';                          &practice_problem_header().'<hr />';
                   } elsif ($Apache::lonhomework::type eq 'randomizetry') {
                       my $reqtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::part.randomizeontries");
                       my $problemstatus = &get_problem_status($Apache::inputtags::part);
                       $result.=&randomizetry_problem_header($problemstatus,$reqtries);
                 }                  }
     }      }
     # if we are viewing someone else preserve that info      # if we are viewing someone else preserve that info

Removed from v.1.563  
changed lines
  Added in v.1.564


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