Diff for /loncom/homework/optionresponse.pm between versions 1.94 and 1.99

version 1.94, 2003/10/27 20:04:34 version 1.99, 2004/02/12 15:50:01
Line 43  sub start_optionresponse { Line 43  sub start_optionresponse {
   %Apache::hint::option=();    %Apache::hint::option=();
   if ($target eq 'edit') {    if ($target eq 'edit') {
     $result.=&Apache::edit::start_table($token).      $result.=&Apache::edit::start_table($token).
  "<tr><td>Multiple Option Response Question</td><td>Delete:".   "<tr><td>Multiple Option Response Question ".
    &Apache::loncommon::help_open_topic('Option_Response_Problems')."</td><td>Delete:".
  &Apache::edit::deletelist($target,$token)   &Apache::edit::deletelist($target,$token)
  ."</td><td>&nbsp;".   ."</td><td>&nbsp;".
         &Apache::edit::end_row().          &Apache::edit::end_row().
Line 184  sub end_foilgroup { Line 185  sub end_foilgroup {
   if ($ENV{'form.submitted'} eq 'scantron') {    if ($ENV{'form.submitted'} eq 'scantron') {
       $response = $opt[$response];        $response = $opt[$response];
   }    }
   $responsehash{$name}=$response;  
   if ( $response =~ /[^\s]/) {    if ( $response =~ /[^\s]/) {
       $responsehash{$name}=$response;
     my $value=$Apache::response::foilgroup{$name.'.value'};      my $value=$Apache::response::foilgroup{$name.'.value'};
     &Apache::lonxml::debug("submitted a $response for $value<br />\n");      &Apache::lonxml::debug("submitted a $response for $value<br />\n");
     if ($value eq $response) {      if ($value eq $response) {
Line 318  sub displayfoils { Line 319  sub displayfoils {
  } else {   } else {
     $text=$value.': '.$text;      $text=$value.': '.$text;
  }   }
       } else {
    $text='&#149;'.$text;
     }      }
     $result.=$text."\n";      $result.=$text."\n";
       } elsif ($target eq 'tex') {        } elsif ($target eq 'tex') {
Line 367  sub displayfoils { Line 370  sub displayfoils {
   my $text=$Apache::response::foilgroup{$name.'.text'};    my $text=$Apache::response::foilgroup{$name.'.text'};
   if (!($text=~s|<drawoptionlist\s*/>|$optionlist|) && $Apache::lonhomework::type ne 'exam') {    if (!($text=~s|<drawoptionlist\s*/>|$optionlist|) && $Apache::lonhomework::type ne 'exam') {
       $text=$optionlist.$text;        $text=$optionlist.$text;
     } else {
         $text='&#149;'.$text;
   }    }
   $result.=$break.$text."\n";    $result.=$break.$text."\n";
   if ($Apache::lonhomework::type eq 'exam') {    if ($Apache::lonhomework::type eq 'exam') {
Line 393  sub displayfoils { Line 398  sub displayfoils {
   }    }
       }        }
       if ($Apache::lonhomework::type eq 'exam') {        if ($Apache::lonhomework::type eq 'exam') {
   $result.='\vskip -2 mm\parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';    $result.='\vskip -1 mm\noindent\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]'.&bubbles(\@alphabet,\@opt).'\end{enumerate} \vskip -9 mm \strut ';
   $internal_counter++;    $internal_counter++;
       }        }
       $displayoptionintex=1;        $displayoptionintex=1;
Line 414  sub displayfoils { Line 419  sub displayfoils {
   }    }
       }        }
       if ($Apache::lonhomework::type eq 'exam') {        if ($Apache::lonhomework::type eq 'exam') {
   $result.='\vskip -2 mm \parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';    $result.='\vskip -1 mm \noindent\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]'.&bubbles(\@alphabet,\@opt).'\end{enumerate} \vskip -9 mm \strut ';
   $internal_counter++;    $internal_counter++;
       }        }
   }    }
Line 441  sub optionlist_correction { Line 446  sub optionlist_correction {
  $texoptionlist =~ s/>/\$>\$/g;   $texoptionlist =~ s/>/\$>\$/g;
  $texoptionlist =~ s/</\$<\$/g;   $texoptionlist =~ s/</\$<\$/g;
  $texoptionlist =~ s/=/\$=\$/g;   $texoptionlist =~ s/=/\$=\$/g;
  $texoptionlist =~ s/\^(\d+)/<m>\$$1\$<\/m>/g;   $texoptionlist =~ s/\^(\d+)/\$^{$1}\$/g;
     } else {      } else {
  $texoptionlist =~ s/<option><\/option>/\\item \[\] \\vskip -5 mm/;   $texoptionlist =~ s/<option><\/option>/\\item \[\] \\vskip -5 mm/;
     }      }
Line 480  sub bubbles { Line 485  sub bubbles {
     my ($result,$head,$line) =('','','');      my ($result,$head,$line) =('','','');
     my $number_of_bubbles = $#opt + 1;      my $number_of_bubbles = $#opt + 1;
     my $current_length = 0;      my $current_length = 0;
       $ENV{'form.textwidth'}=~/(\d+)/;
       my $textwidth=$1;
     for (my $ind=0;$ind<=$number_of_bubbles;$ind++) {      for (my $ind=0;$ind<=$number_of_bubbles;$ind++) {
  $current_length += (length($opt[$ind])+length($alphabet[$ind])+2)*2;   my $leftmargin;
  if ($current_length<0.9*$ENV{'form.textwidth'} and $ind!=$number_of_bubbles) {   if ($ind==0) {$leftmargin=6;} else {$leftmargin=10;}
    $current_length += (length($opt[$ind])+length($alphabet[$ind])+3)*2;
    if ($current_length<($textwidth-$leftmargin) and $ind!=$number_of_bubbles) {
     $line.='\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';      $line.='\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';
     $head.='lr';      $head.='lr';
  } else {   } else {
     $line=~s/\&\s*$//;      $line=~s/\&\s*$//;
     $result.='\vskip -5 mm\begin{tabular}{'.$head.'}\\\\'.$line.'\\\\\end{tabular}';      $result.='\vskip -2 mm\noindent\begin{tabular}{'.$head.'}'.$line.'\\\\\end{tabular}';
     $line = '\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';;      $line = '\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';;
     $head ='lr';      $head ='lr';
     $current_length = (length($opt[$ind])+length($alphabet[$ind]))*2;      $current_length = (length($opt[$ind])+length($alphabet[$ind]))*2;

Removed from v.1.94  
changed lines
  Added in v.1.99


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