Diff for /loncom/homework/radiobuttonresponse.pm between versions 1.153.6.7 and 1.153.6.10

version 1.153.6.7, 2012/01/25 12:00:33 version 1.153.6.10, 2012/02/05 16:11:57
Line 43  BEGIN { Line 43  BEGIN {
         ('radiobuttonresponse') );          ('radiobuttonresponse') );
 }  }
   
   #---------------------------------------------------------------------------
   #
   #  Generic utility subs.
   
 sub bubble_line_count {  sub bubble_line_count {
     my ( $numfoils, $bubbles_per_line ) = @_;      my ( $numfoils, $bubbles_per_line ) = @_;
     my $bubble_lines;      my $bubble_lines;
Line 54  sub bubble_line_count { Line 58  sub bubble_line_count {
   
 }  }
   
   
   #------------------------------------------------------------------------------
   #
   #  XML handlers.
 sub start_radiobuttonresponse {  sub start_radiobuttonresponse {
     my ( $target, $token, $tagstack, $parstack, $parser, $safeeval, $style ) =      my ( $target, $token, $tagstack, $parstack, $parser, $safeeval, $style ) =
       @_;        @_;
Line 247  sub end_foilgroup { Line 255  sub end_foilgroup {
     my $part             = $Apache::inputtags::part;      my $part             = $Apache::inputtags::part;
     my $bubbles_per_line = &getbubblesnum( $part, $id );      my $bubbles_per_line = &getbubblesnum( $part, $id );
   
   
     if (   $target eq 'grade'      if (   $target eq 'grade'
         || $target eq 'web'          || $target eq 'web'
         || $target eq 'answer'          || $target eq 'answer'
Line 375  sub format_prior_answer { Line 384  sub format_prior_answer {
   
 }  }
   
 ##  ## 
 sub displayallfoils{  # Return the last survey response.  The logic is slightly different than that of 
     my ( $direction, $target ) = @_;  # get_last_responses.  TODO: See if there are chunks of code betweenthis and
     my $result;  # get_last_reponses that are common and can be factored.
     &Apache::lonxml::debug("survey style display");  #
     my @names;  # @param $part - Problem part under consideration.
     if ( $Apache::response::foilgroup{'names'} ) {  # @param $showanswer - True if answers should be shown.
         @names = @{ $Apache::response::foilgroup{'names'} };  # @param $id         - Problem id.
     }  #
   # @return hash reference.
     # Figure out how to bracket the list of foils for  # @retval reference to the has indexed by answer selection that 
     # the TeX target:  #         indicates the most recent answer.
     #  #
   sub get_last_survey_response {
     my $begin_environment;      my ($part, $showanswer, $id) = @_;
     my $end_environment;  
       
     if ($target eq 'tex') {  
   
  # Decide how to bracket the list of foils:  
   
       my $newvariation;
       my $lastresponse; # stringified last response.
   
         if (   $env{'form.pdfFormFields'} eq 'yes'  
             && $Apache::inputtags::status[-1] eq 'CAN_ANSWER' )  
         {  
             $begin_environment = '\begin{itemize}';  
     $end_environment   = '\end{itemize}';  
         }  
         else {  
             $begin_environment = '\begin{enumerate}';  
     $end_environment   = '\end{enumerate}';  
         }  
  $result .= $begin_environment;  
     }  
   
     my $temp = 0;  
     my $i    = 0;  
     my $id   = $Apache::inputtags::response['-1'];  
     my $part = $Apache::inputtags::part;  
     my ( $lastresponse, $newvariation, $showanswer );  
     if (      if (
         (          (
             (              (
Line 432  sub displayallfoils{ Line 420  sub displayallfoils{
             $newvariation = 1;              $newvariation = 1;
         }          }
     }      }
     $showanswer = &Apache::response::show_answer();  
     unless (      unless (
         (          (
             (              (
Line 449  sub displayallfoils{ Line 436  sub displayallfoils{
         $lastresponse =          $lastresponse =
           $Apache::lonhomework::history{"resource.$part.$id.submission"};            $Apache::lonhomework::history{"resource.$part.$id.submission"};
     }      }
     if ( $direction eq 'horizontal' && $target ne 'tex') {   
  $result .= '<table><tr>';   
     }  
     my %lastresponse = &Apache::lonnet::str2hash($lastresponse);      my %lastresponse = &Apache::lonnet::str2hash($lastresponse);
      
   
       return \%lastresponse;
   
   }
   ##
   # Removes the names from a foil group that are marked as unused.
   #
   # @param $names - reference to the array of names to filter.
   #
   # @return arrayref
   # @retval reference to the filtered array.
   #
   sub remove_unused {
       my ($names) = @_;
       my @result;
   
       foreach my $name (@{$names}) {
    if ($Apache::response::foilgroup{$name . '.value'} ne 'unused') {
       push(@result, $name);
    }
       }
       return \@result;
   }
   ## 
   # Displays all foils in a survey type problem for HTML rendition.
   # TODO: See if there is any logic in this sub that can be shared
   #      with display_foils_html
   #
   # @param $names        - ref to array of names of the foils to display.
   # @param $part         - Problem part number.
   # @param $showanswer   - If true, show the answers.
   # @param $lastresponse - Ref to the last response hash.
   # @param $direction    - Display direction of the radiobuttons.
   #
   # @return string
   # @retval HTML required to display the resource in a browser.
   #
   sub display_survey_html {
       my ($names, $part, $showanswer, $lastresponse, $direction) = @_;
       my $result;
   
       # Figure out a few fragments of html that depend onthe 
       # orientation of the radiobuttons:
       # closing_html - HTML to emit at the end of the resource.
       # pre_foil     - HTML to emit prior to each foil.
       # post_foil    - HTML to emit following each foil.
       #
       #  The opening HTML is just added to the $result now
       #
       #  Figuring these outin advance compresses the loop over foils into something
       #  pretty simple:
       #
       # NOTE: There's probably a really cool way to do this with style sheets
       #       and picking the selector based on the orientation, if someone wants to puzzle
       #       that out.  In that case, probably the whole thing lives in a <div> and each
       #       foil lives in a <p>
       #
   
   
       my ($opening_html, $closing_html, $pre_foil, $post_foil) = 
    &html_direction_fragments($direction);
   
       $result = $opening_html;
   
       # Different rendering depending on whether answers are shown:
       # I played with different factorings but this seems the most concise/clear...
       # although I don't like the $showanswer conditino inside the loop.  Other things I tried
       #  - two loops..much longer code..no gain in clarity.
       #  - Using a visitor patttern passing it the rendering code chunklets and
       #    an anonymous hash reference for state data etc. Very cool but
       #    quite a bit more code and quite a bit less clear.
       
       my $temp = 0;
       foreach my $name (@{$names}) {
    $result .= $pre_foil;
   
    if ($showanswer) {
       my $foiltext =  $Apache::response::foilgroup{$name . '.text'};
   
       # Bold the prior  response:
   
       if (defined($lastresponse->{$name})) {
    $result .= '<b>' . $foiltext . '</b>';
       } else {
    $result .= $foiltext;
       }
    } else {
       $result .= &html_radiobutton(
    $part, $Apache::inputtags::response['-1'], $name, $lastresponse, $temp
        );
    }
   
    $result .= $post_foil;
    $temp++;
       }
   
   
       $result .= $closing_html;
       return $result;
   
   }
   
   ##
   #  Generate LaTeX for surveys.
   #  
   #   @param $names - names of the foils to display.
   #   @param $showanswer - flag that is true to display answers.
   #   @param $lastresponse - Reference to a hash the indicates the last response.
   #   @param $direction    - Orientation of foils ('horiztonal' or otherwise).
   #   @param $venv         - LaTeX name for vertical env.
   #
   #   @return string
   #   @retval LaTeX rendering of the survey question.
   
   sub latex_survey {
       my ($names, $showanswer, $lastresponse, $direction, $venv) = @_;
   
       my $result;
   
   
    
   
     if ($showanswer) {      if ($showanswer) {
         foreach my $name (@names) {  
             if ( $Apache::response::foilgroup{ $name . '.value' } ne 'unused' )   $result .= "\\begin{$venv}";
             {   foreach my $name (@{$names}) {
                 if ( ( $direction eq 'horizontal' ) && ( $target ne 'tex' ) ) {      
                     $result .= "<td>";      
                 }      $result .= '\item \vskip -2mm ';
                 else {      
                     if ( $target eq 'tex' ) {      if ( defined( $lastresponse->{$name} ) ) {
                         $result .= '\item \vskip -2mm ';   $result .= '}';
                     }      }
                     else {      $result .= $Apache::response::foilgroup{ $name . '.text' } . ' ';
                         $result .= "<br />";   }
                     }   $result .= "\\end{$venv}";
                 }  
                 if ( defined( $lastresponse{$name} ) ) {      } elsif ( $env{'form.pdfFormFields'} eq 'yes'
                     if ( $target eq 'tex' ) {        && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
                         $result .= '}';   $result .= &display_pdf_form($names, $direction, $venv);
                     }      } else {
                     else {   if ($direction eq 'horizontal') {
                         $result .= '<b>';      my @foil_texts = &get_foil_texts($names);
                     }      $result .=  &Apache::caparesponse::make_horizontal_latex_bubbles(
                 }      $names, \@foil_texts, '$\bigcirc$');
                 $result .= $Apache::response::foilgroup{ $name . '.text' };   } else {
                 if ( defined( $lastresponse{$name} ) && ( $target ne 'tex' ) ) {      $result .= "\\begin{$venv}";
                     $result .= '</b>';  
                 }      my $temp = 0;
                 if ( ( $direction eq 'horizontal' ) && ( $target ne 'tex' ) ) {      my $i    = 0;
                     $result .= "</td>";      foreach my $name (@{$names}) {
                 }  
             }   $result .= '\item \vskip -2mm ';
         }  
    if ($env{'form.pdfFormFields'} ne 'yes'
       or $Apache::inputtags::status[-1] ne 'CAN_ANSWER' )
    {
       $result .=
    '$\bigcirc$'
    . $Apache::response::foilgroup{ $name . '.text' }
       . '\\\\';    #' stupid emacs
    }
   
    $i++;    
    $temp++;
   
    $result .= '\vskip 0 mm ';
       }
       $result .= "\\end{$venv}";
    }
   
   
     }      }
     else {      
         foreach my $name (@names) {      return $result;
             if ( $Apache::response::foilgroup{ $name . '.value' } ne 'unused' )  
             {      
                 if ( $direction eq 'horizontal' && $target ne 'tex' ) {  }
                     $result .= "<td>";  ##
                 }  #  Figure out the LaTeX environment in which to wrap the LaTeX vertical output.
                 else {  #
                     if ( $target eq 'tex' ) {  # @return string
                         if (   $env{'form.pdfFormFields'} eq 'yes'  # @retval the environment name.  The LaTeX should be wrapped a 
                             && $Apache::inputtags::status[-1] eq 'CAN_ANSWER' )  #    \begin{retval} \end{retval} pair.
                         {  #
                             my $fieldname =  sub latex_vertical_environment {
                                 $env{'request.symb'}       if ($env{'form.pdfFormFields'} eq 'yes'
                               . '&part_'   && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
                               . $Apache::inputtags::part   return 'itemize';
                               . '&radiobuttonresponse'      } else {
                               . '&HWVAL_'   return 'enumerate';
                               . $Apache::inputtags::response['-1'];  
                             $result .= '\item[{'  
                               . &Apache::lonxml::print_pdf_radiobutton(  
                                 $fieldname, $temp )  
                               . '}]'  
                               . $Apache::response::foilgroup{ $name . '.text' }  
                               . "\n";  
                         }  
                         else {  
                             $result .= '\item \vskip -2mm ';  
                         }  
                     }  
                     else {  
                         $result .= "<br />";  
                     }  
                 }  
                 if ( $target eq 'tex' ) {  
                     if (   $env{'form.pdfFormFields'} ne 'yes'  
                         or $Apache::inputtags::status[-1] ne 'CAN_ANSWER' )  
                     {  
                         $result .=  
                             '$\bigcirc$'  
                           . $Apache::response::foilgroup{ $name . '.text' }  
                           . '\\\\';    #' stupid emacs  
                     }  
                     $i++;  
                 }  
                 else {  
                     $result .= '<label>';  
                     $result .= "<input  
                        onchange=\"javascript:setSubmittedPart('$part');\"  
                        type=\"radio\"  
                        name=\"HWVAL_$Apache::inputtags::response['-1']\"  
                        value=\"$temp\"";  
   
                     if ( defined( $lastresponse{$name} ) ) {  
                         $result .= ' checked="checked"';  
                     }  
                     $result .= ' />'  
                       . $Apache::response::foilgroup{ $name . '.text' }  
                       . '</label>';  
                 }  
                 $temp++;  
                 if ( $target ne 'tex' ) {  
                     if (   ( $direction eq 'horizontal' )  
                         && ( $target ne 'tex' ) )  
                     {  
                         $result .= "</td>";  
                     }  
                 }  
                 else {  
                     $result .= '\vskip 0 mm ';  
                 }  
             }  
         }  
     }      }
   }
   
   ##
   # Figure out the key html fragments that depend on the rendering direction:
   #
   # @param $direction - 'horizontal' for horizontal direction.
   #
   # @return list
   # @retval (part_start, part_end, foil_start, foil_end)
   # Where:
   #   - part_start is the HTML to emit at the start of the part.
   #   - part_end   is the HTML to emit at the end of the part.
   #   - foil_start is the HTML to emit prior to each foil.
   #   - foil_end is the HTML to emit after each foil
   #
   sub html_direction_fragments {
       my $direction = shift;
       if ($direction eq 'horizontal') {
    return ('<table><tr>', '</tr></table>', '<td>', '</td>');
       } else {
    return ('', '<br />', '<br />', '');
       }
   }
   
   ##
   #
   #  Displays all the foils of a problem in a format suitable for
   #   surveys, surveys for credit, anonymous surveys and anonymous surveys for credit.
   #
   #  @param $direction - Display direction of the choices ('horiztonal' or not).
   #  @param $target    - Rendering target.
   #
   #  @return string
   #  @retval Text that renders for the selected target.
   # 
   sub displayallfoils{
       my ( $direction, $target ) = @_;
       my $result;
       &Apache::lonxml::debug("survey style display");
   
     if ( ( $direction eq 'horizontal' ) && ( $target ne 'tex' ) ) {      my @names;
         $result .= '</tr></table>';  
       if ( $Apache::response::foilgroup{'names'} ) {
           @names = @{ $Apache::response::foilgroup{'names'} };
     }      }
   
     # Close tex bracketing:  
   
     if ($target eq 'tex') {      my $id   = $Apache::inputtags::response['-1'];
  $result .= $end_environment;      my $part = $Apache::inputtags::part;
       
       my $showanswer = &Apache::response::show_answer();
       my $lastresponse = &get_last_survey_response($part, $showanswer, $id);
       my $used_names = &remove_unused(\@names);
   
   
       if ($target ne 'tex') {
    $result .= &display_survey_html(
       $used_names, $part, $showanswer, $lastresponse, $direction
    );
       } else {
   
    my $vertical_env = &latex_vertical_environment();
    $result .= &latex_survey(
       $used_names, $showanswer, $lastresponse, $direction, $vertical_env
    );
   
     }      }
   
   
   
     return $result;      return $result;
 }  }
   
Line 887  sub get_last_response { Line 1017  sub get_last_response {
 # @param $target     - Rendition target...there are several html targets.  # @param $target     - Rendition target...there are several html targets.
 # @param $direction  - 'horizontal' if layout is horizontal.  # @param $direction  - 'horizontal' if layout is horizontal.
 # @param $part       - Part of the problem that's being displayed.  # @param $part       - Part of the problem that's being displayed.
 # @param $solved     - Solution state of the problem.  
 # @param $show_answer- True if answers should be shown.  # @param $show_answer- True if answers should be shown.
 #  #
 # @return string  # @return string
 # @retval generated html.  # @retval generated html.
 #  #
 sub display_foils_html {  sub display_foils_html {
     my ($whichfoils, $target, $direction, $part, $solved, $show_answer) = @_;      my ($whichfoils, $target, $direction, $part, $show_answer) = @_;
     my $result;      my $result;
   
   
     # if the answers get shown, we need to label each item as correct or      # if the answers get shown, we need to label each item as correct or
     # incorrect.      # incorrect.
   
     if ($show_answer) {      my ($opening_html, $finalclose, $item_pretext, $item_posttext) = 
  my $item_pretext     = '<br />'; # html prior to each item   &html_direction_fragments($direction);
  my $item_posttext    = ''; # html after each item.  
  my $finalclose       = ''; # html to close off the whole shebang  
   
       $result .= $opening_html;
   
  # Horizontal layout is a table with each foil in a cell  
   
  if ($direction eq 'horizontal') {      if ($show_answer) {
     $result        = '<table><tr>';  
     $item_pretext  = '<td>' . $item_pretext;  
     $item_posttext = '</td>';  
     $finalclose    = '</tr></table>';  
  }   
   
  foreach my $name (@{$whichfoils}) {   foreach my $name (@{$whichfoils}) {
   
Line 947  sub display_foils_html { Line 1070  sub display_foils_html {
     $result .= "\n"; # make the html a bit more readable.      $result .= "\n"; # make the html a bit more readable.
  }   }
   
  $result .= $finalclose;  
   
     } else {      } else {
  $result .= '<br />'; # end line prior to foilgroup:  
   
  #  Not showing the answers, we need to generate the HTML appropriate  
  #  to allowing the student to respond.  
   
  my $item_pretext;  
  my $item_posttext;  
  my $lastresponse = &get_last_response($part);   my $lastresponse = &get_last_response($part);
   
  if ( $direction eq 'horizontal' ) {  
     $item_pretext  = '<td>';  
     $item_posttext = '</td>';  
  }  
  else {  
     $item_pretext = '<br/>';  
  }  
  my $item_no = 0;   my $item_no = 0;
  foreach my $name (@{$whichfoils}) {   foreach my $name (@{$whichfoils}) {
     $result .= $item_pretext;      $result .= $item_pretext;
Line 976  sub display_foils_html { Line 1084  sub display_foils_html {
     $result .= $item_posttext;      $result .= $item_posttext;
     $item_no++;      $item_no++;
  }   }
   
  if ($direction eq 'horizontal' ) {  
             $result .= "</tr></table>";  
         } else {  
      $result .= "<br />";   
  }  
     }      }
       $result .= $finalclose;
   
     return $result;      return $result;
 }  }
Line 992  sub display_foils_html { Line 1096  sub display_foils_html {
 # @param $whichfoils       - Reference to an array that contains the foil names to display  # @param $whichfoils       - Reference to an array that contains the foil names to display
 # @param $bubbles_per_line - Number of bubbles on a line.  # @param $bubbles_per_line - Number of bubbles on a line.
 # @param $direction        - Rendering direction 'horizontal' is what we're looking for.  # @param $direction        - Rendering direction 'horizontal' is what we're looking for.
 # @param $vbegin           - Start latex fragment in vertical rendering.  # @param $venv             - Name of LaTeX environment to use for vertical rendering.
 # @param $vend             - End latex fragmentin vertical rendering.  
 #  #
 # @return string  # @return string
 # @return the latex rendering of the exam problem.  # @return the latex rendering of the exam problem.
 #  #
 #  #
 sub display_latex_exam {  sub display_latex_exam {
     my ($whichfoils, $bubbles_per_line, $direction, $vbegin, $vend) = @_;      my ($whichfoils, $bubbles_per_line, $direction, $venv) = @_;
     my $result;      my $result;
     my $numlines;      my $numlines;
     my $bubble_number = 0;      my $bubble_number = 0;
     my $line          = 0;      my $line          = 0;
     my $i             = 0;      my $i             = 0;
   
       
     if ($direction eq  'horizontal') {      if ($direction eq  'horizontal') {
   
  # Marshall the display text for each foil and turn things over to   # Marshall the display text for each foil and turn things over to
Line 1017  sub display_latex_exam { Line 1120  sub display_latex_exam {
  $result .= &Apache::caparesponse::make_horizontal_latex_bubbles(   $result .= &Apache::caparesponse::make_horizontal_latex_bubbles(
     $whichfoils, \@foil_texts, '$\bigcirc$');      $whichfoils, \@foil_texts, '$\bigcirc$');
   
   
     } else {      } else {
  $result .= $vbegin;   $result .= "\\begin{$venv}";
   
  # This section puts out the prefix that tells the user   # This section puts out the prefix that tells the user
  # (if necessary) to only choose one bubble in the next n lines   # (if necessary) to only choose one bubble in the next n lines
Line 1073  sub display_latex_exam { Line 1175  sub display_latex_exam {
     $i++;      $i++;
     $bubble_number++;      $bubble_number++;
  }   }
  $result .= $vend   $result .= "\\end{$venv}";
   
     }      }
   
Line 1086  sub display_latex_exam { Line 1188  sub display_latex_exam {
 #  #
 #  @param $whichfoils - The foils to display  #  @param $whichfoils - The foils to display
 #  @param $direction  - Display direction ('horizontal' is what matters to us).  #  @param $direction  - Display direction ('horizontal' is what matters to us).
 #  @param $vbegin     - Begin the vertical environment being used.  #  @param $venv       - Vertical env. to use for vertical rendering.
 #  @param  $vend      - End the vertical environment being used.  #  @param  $vend      - End the vertical environment being used.
 #  #
 #  @return string  #  @return string
 #  @retval - The LaTeX rendering of the resource.'  #  @retval - The LaTeX rendering of the resource.'
 #  #
 sub display_latex {  sub display_latex {
     my ($whichfoils, $direction, $vbegin, $vend) = @_;      my ($whichfoils, $direction, $venv) = @_;
     my $result;      my $result;
   
     # how we render depends on the direction.      # how we render depends on the direction.
Line 1107  sub display_latex { Line 1209  sub display_latex {
  $result .= &Apache::caparesponse::make_horizontal_latex_bubbles(   $result .= &Apache::caparesponse::make_horizontal_latex_bubbles(
     $whichfoils, \@foil_texts, '');      $whichfoils, \@foil_texts, '');
     } else {      } else {
  $result .= $vbegin;   $result .= "\\begin{$venv}";
  foreach my $name (@{$whichfoils}) {   foreach my $name (@{$whichfoils}) {
     $result .=  '\vspace*{-2 mm}\item '      $result .=  '\vspace*{-2 mm}\item '
  . $Apache::response::foilgroup{ $name . '.text' };   . $Apache::response::foilgroup{ $name . '.text' };
  }   }
   
  $result .= $vend;   $result .= "\\end{$venv}";
     }      }
     return $result;      return $result;
 }  }
Line 1128  sub display_latex { Line 1230  sub display_latex {
 #                     they should be displayed.  #                     they should be displayed.
 # @param $direction  - Rendering direction.  'horiztonal' means inputs are laid out  # @param $direction  - Rendering direction.  'horiztonal' means inputs are laid out
 #                      horizontally otherwise they are stacked vertically.  #                      horizontally otherwise they are stacked vertically.
   # @param $venv       - Vertical environment in which to wrap the foils.
 #  #
 # @return string  # @return string
 # @retval String containing the rendering of the resource.  # @retval String containing the rendering of the resource.
 #  #
   # TODO: Take into account direction!!!
   #
 sub display_pdf_form {  sub display_pdf_form {
     my ($whichfoils) = @_;      my ($whichfoils, $direction, $venv) = @_;
     my $temp = 0;      my $temp = 0;
     my $result;      my $result;
   
       $result .= "\\begin{$venv}";
     foreach my $name ( @{$whichfoils} ) {      foreach my $name ( @{$whichfoils} ) {
   
  my $fieldname =   my $fieldname =
Line 1155  sub display_pdf_form { Line 1261  sub display_pdf_form {
   
  $temp++;   $temp++;
     }      }
       $result .= "\\end{$venv}";
   
     return $result;      return $result;
 }  }
Line 1188  sub displayfoils { Line 1295  sub displayfoils {
     {      {
   
  $result = &display_foils_html(   $result = &display_foils_html(
     $whichfoils, $target, $direction, $part, $solved, 1);      $whichfoils, $target, $direction, $part,  1);
   
  # other html   # other html
     }  elsif ($target ne 'tex') {      }  elsif ($target ne 'tex') {
Line 1198  sub displayfoils { Line 1305  sub displayfoils {
        # LaTeX rendering:         # LaTeX rendering:
     } else {      } else {
   
         my $i             = 0;  
         my $bubble_number = 0;  
         my $line          = 0;  
         my $temp          = 0;  
         my $id            = $Apache::inputtags::response['-1'];          my $id            = $Apache::inputtags::response['-1'];
         my $part          = $Apache::inputtags::part;          my $part          = $Apache::inputtags::part;
   
   
   
  my $numlines;   my $numlines;
   
  # Decide how to bracket the list of foils:   # Decide how to bracket the list of foils:
   
  my $begin_environment;   my $vertical_env = &latex_vertical_environment();
  my $end_environment;  
   
         if (   $env{'form.pdfFormFields'} eq 'yes'  
             && $Apache::inputtags::status[-1] eq 'CAN_ANSWER' )  
         {  
             $begin_environment = '\begin{itemize}';  
     $end_environment   = '\end{itemize}';  
         }  
         else {  
             $begin_environment = '\begin{enumerate}';  
     $end_environment   = '\end{enumerate}';  
         }  
   
  # Rendering for latex exams.   # Rendering for latex exams.
   
  if ( ( $Apache::lonhomework::type eq 'exam' ) )   if ( ( $Apache::lonhomework::type eq 'exam' ) )
  {   {
     $result .= &display_latex_exam(      $result .= &display_latex_exam(
  $whichfoils, $bubbles_per_line, $direction, $begin_environment,    $whichfoils, $bubbles_per_line, $direction, $vertical_env);
  $end_environment);  
   
     $result .= '\vskip 0mm ';      $result .= '\vskip 0mm ';
           
Line 1244  sub displayfoils { Line 1332  sub displayfoils {
     if ( ($env{'form.pdfFormFields'} eq 'yes')      if ( ($env{'form.pdfFormFields'} eq 'yes')
     && ($Apache::inputtags::status[-1] eq 'CAN_ANSWER'))      && ($Apache::inputtags::status[-1] eq 'CAN_ANSWER'))
     {      {
  $result .= $begin_environment;   $result .= &display_pdf_form($whichfoils, $direction, $vertical_env);
  $result .= &display_pdf_form($whichfoils, $direction);  
  $result .= $end_environment;  
     } else {      } else {
  $result .= &display_latex(   $result .= &display_latex($whichfoils,  $direction, $vertical_env );
      $whichfoils,  $direction, $begin_environment, $end_environment  
     );  
     }      }
     $result .= '\vskip 0 mm ';       $result .= '\vskip 0 mm '; 
                 

Removed from v.1.153.6.7  
changed lines
  Added in v.1.153.6.10


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