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

version 1.512.2.20, 2019/11/04 18:01:04 version 1.512.2.21, 2019/11/04 20:50:57
Line 655  sub setup_rndseed { Line 655  sub setup_rndseed {
         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 $Apache::inputtags::part)) {
                 $partfortries = $probpartlist->[0];                  $partfortries = $probpartlist->[0];
                   if (&Apache::lonnet::EXT("resource.$partfortries.questiontype") eq 'randomizetry') {
                       $partfortries = $probpartlist->[0];
                   } else {
                       $partfortries = '';
                   }
             }              }
         }          }
         $numtries = $Apache::lonhomework::history{"resource.$partfortries.tries"};          if ($partfortries ne '') {
         $reqtries = &Apache::lonnet::EXT("resource.$partfortries.randomizeontries");              $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 '')
Line 1417  sub init_problem_globals { Line 1424  sub init_problem_globals {
     @Apache::structuretags::whilebody=();      @Apache::structuretags::whilebody=();
     @Apache::structuretags::whileline=();      @Apache::structuretags::whileline=();
     $Apache::lonhomework::scantronmode=0;      $Apache::lonhomework::scantronmode=0;
       $Apache::lonhomework::randomizetrypart=0;
     undef($Apache::lonhomework::name);      undef($Apache::lonhomework::name);
     undef($Apache::lonhomework::default_type);      undef($Apache::lonhomework::default_type);
     undef($Apache::lonhomework::type);      undef($Apache::lonhomework::type);
Line 1440  sub reset_problem_globals { Line 1448  sub reset_problem_globals {
     undef($Apache::lonhomework::default_type);      undef($Apache::lonhomework::default_type);
     undef($Apache::lonhomework::type);      undef($Apache::lonhomework::type);
     undef($Apache::lonhomework::scantronmode);      undef($Apache::lonhomework::scantronmode);
       undef($Apache::inputtags::randomizetrypart);
     undef($Apache::lonhomework::ignore_response_errors);      undef($Apache::lonhomework::ignore_response_errors);
     undef(@Apache::functionplotresponse::callscripts);      undef(@Apache::functionplotresponse::callscripts);
     &Apache::lonhomework::reset_show_problem_status();      &Apache::lonhomework::reset_show_problem_status();
Line 1622  sub start_problem { Line 1631  sub start_problem {
         if (($env{'request.state'} ne "construct") &&          if (($env{'request.state'} ne "construct") &&
             ($Apache::lonhomework::type eq 'randomizetry') &&              ($Apache::lonhomework::type eq 'randomizetry') &&
             ($status eq 'CAN_ANSWER')) {              ($status eq 'CAN_ANSWER')) {
             my $reqtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::part.randomizeontries");              my @parts;
             my $problemstatus = &get_problem_status($Apache::inputtags::part);              if (ref($probpartlist) eq 'ARRAY') {
             $form_tag_start.=&randomizetry_problem_header($problemstatus,$reqtries);                  @parts = @{$probpartlist};
               }
               unless (@parts) {
                   my $reqtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::part.randomizeontries");
                   my $problemstatus = &get_problem_status($Apache::inputtags::part);
                   $form_tag_start.=&randomizetry_problem_header($problemstatus,$reqtries,$symb);
               }
         }          }
   
  my $expression='$external::datestatus="'.$status.'";';   my $expression='$external::datestatus="'.$status.'";';
Line 1945  sub end_problem { Line 1960  sub end_problem {
     }      }
  }   }
         if ($target eq 'web') {          if ($target eq 'web') {
            $result.=&Apache::functionplotresponse::init_script();              $result.=&Apache::functionplotresponse::init_script();
               if ($Apache::lonhomework::default_type eq 'randomizetry') {
                   my ($symb) = &Apache::lonnet::whichuser();
                   if ((($env{'request.state'} eq 'construct') || ($symb eq '')) &&
                       ($status eq 'CAN_ANSWER')) {
                       unless (@Apache::inputtags::partlist > 1) {
                           $result.= <<"ENDJS";
   <script type="text/javascript">
   // <![CDATA[
       \$(document).ready(function() {
            \$('#LC_randomizetry_header').css('display','block');
       });
   // ]]>
   </script>
   ENDJS
                       }
                   }
               }
         }          }
  if ($target eq 'grade') {   if ($target eq 'grade') {
     &Apache::lonhomework::showhash(%Apache::lonhomework::results);      &Apache::lonhomework::showhash(%Apache::lonhomework::results);
Line 2744  sub start_part { Line 2776  sub start_part {
  } elsif ($target eq 'web') {   } elsif ($target eq 'web') {
                     if ($status eq 'CAN_ANSWER') {                      if ($status eq 'CAN_ANSWER') {
                         my $problemstatus = &get_problem_status($Apache::inputtags::part);                           my $problemstatus = &get_problem_status($Apache::inputtags::part); 
                         my $probrandomize = &Apache::lonnet::EXT("resource.$Apache::inputtags::partlist[0].type");  
                         my $probrandtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::partlist[0].randomizeontries");  
                         my $num = scalar(@Apache::inputtags::partlist)-1;                          my $num = scalar(@Apache::inputtags::partlist)-1;
                         if ($probrandomize eq 'randomizetry') {                          if ((($Apache::lonhomework::default_type eq 'randomizetry') ||
                             if (&Apache::lonnet::EXT("resource.$Apache::inputtags::part.type") ne 'randomizetry') {                               ($Apache::lonhomework::randomizetrypart)) &&
                                 $result .= &randomizetry_part_header($problemstatus,'none',$num);                              ($Apache::lonhomework::type ne 'randomizetry')) {
                             } else {                              $result .= &randomizetry_part_header($problemstatus,'none',$num);
                                 my $reqtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::part.randomizeontries");                          } elsif ($Apache::lonhomework::type eq 'randomizetry') {
                                 if ($probrandtries ne $reqtries) {                              $Apache::lonhomework::randomizetrypart = 1;
                                     $result .= &randomizetry_part_header($problemstatus,$reqtries,$num);                              my $reqtries = &Apache::lonnet::EXT("resource.$id.randomizeontries");
                                 }  
                             }  
                         } elsif (&Apache::lonnet::EXT("resource.$Apache::inputtags::part.type") eq 'randomizetry') {  
                             my $reqtries = &Apache::lonnet::EXT("resource.$Apache::inputtags::part.randomizeontries");  
                             $result .= &randomizetry_part_header($problemstatus,$reqtries,$num);                              $result .= &randomizetry_part_header($problemstatus,$reqtries,$num);
                         }                          }
                     }                      }
Line 3077  sub practice_problem_header { Line 3103  sub practice_problem_header {
 }  }
   
 sub randomizetry_problem_header {  sub randomizetry_problem_header {
     my ($problemstatus,$reqtries) = @_;      my ($problemstatus,$reqtries,$symb) = @_;
     my ($header,$text);      my ($header,$text);
     if ($reqtries > 1) {      if ($reqtries > 1) {
         $header = &mt('New Problem Variation After Every [quant,_1,Try,Tries]',$reqtries);          $header = &mt('New Problem Variation After Every [quant,_1,Try,Tries]',$reqtries);
Line 3097  sub randomizetry_problem_header { Line 3123  sub randomizetry_problem_header {
             $text = &mt('A new variation will be generated after each try until correct or tries limit is reached.');              $text = &mt('A new variation will be generated after each try until correct or tries limit is reached.');
         }          }
     }      }
     return '<span class="LC_info"><h3>'.$header.'</h3></span>'.      if (($env{'request.state'} eq "construct") || ($symb eq '')) {
            '<span class="LC_info">'.$text.'</span><hr />';          return '<div class="LC_info" id="LC_randomizetry_header" style="display:none">'.
                  '<h3>'.$header.'</h3><span class="LC_info">'.$text.'</span><hr /></div>';
       } else {
           return '<h3 class="LC_info">'.$header.'</h3>'.
                  '<span class="LC_info">'.$text.'</span><hr />';
       }
 }  }
   
 sub randomizetry_part_header {  sub randomizetry_part_header {

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


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