Diff for /loncom/homework/lonsimpleproblemedit.pm between versions 1.20 and 1.20.2.4

version 1.20, 2009/02/01 20:40:28 version 1.20.2.4, 2010/01/29 15:44:41
Line 95  sub hint { Line 95  sub hint {
 ENDHINT  ENDHINT
 }  }
   
   sub script {
       my $text=$qparms{$prefix.'numericalscript'};
       my $ht=&mt('Scripting (optional)');
       return (<<ENDSCRIPT);
   <table bgcolor="#ccccaa" cellspacing="4" cellpadding="2">
   <tr><td><b>$ht</b><br />
   <textarea style="width:100%" name="numericalscript" cols="80" rows="4">$text</textarea>
   </td></tr>
   </table>
   <br />
   ENDSCRIPT
   }
   
 sub foil {  sub foil {
     my $number=shift;      my $number=shift;
     my %values='';      my (%values,%defaultvalues,%customvalues);
       %defaultvalues = &Apache::lonlocal::texthash(
                            'unused' => 'Not shown, not used'
                        );
     if ($qtype eq 'radio') {      if ($qtype eq 'radio') {
  %values=('true' => 'True', 'false' => 'False');          %customvalues = &Apache::lonlocal::texthash(
                                          'true' => 'True',
                                          'false' => 'False'
           );
     } elsif ($qtype eq 'option') {      } elsif ($qtype eq 'option') {
  %values=&evaloptionhash($qparms{$prefix.'options'});          %customvalues=&evaloptionhash($qparms{$prefix.'options'});
     }      }
     $values{'unused'}='Not shown, not used';      %values = (%defaultvalues,%customvalues);
     my $value=$qparms{$prefix.'value'.$number};      my $value=$qparms{$prefix.'value'.$number};
     unless (defined($value)) { $value='unused'; }      unless (defined($value)) { $value='unused'; }
     unless ($values{$value}) { $value='unused'; }      unless ($values{$value}) { $value='unused'; }
Line 115  sub foil { Line 134  sub foil {
     unless ($positions{$position}) {      unless ($positions{$position}) {
  $position='random';   $position='random';
     }      }
     my $selectvalue=&Apache::loncommon::select_form      my $selectvalue=&Apache::loncommon::select_form(
                                 ($value,'value'.$number,%values);                          $value,
     my $selectposition=&Apache::loncommon::select_form                          'value'.$number,
                                ($position,'position'.$number,%positions);                          &Apache::lonlocal::texthash(%values));
       my $selectposition=&Apache::loncommon::select_form(
                              $position,
                              'position'.$number,
                              &Apache::lonlocal::texthash(%positions));
     my $text=$qparms{$prefix.'text'.$number};      my $text=$qparms{$prefix.'text'.$number};
     my %lt=&Apache::lonlocal::texthash('foil'  => 'Foil',      my %lt=&Apache::lonlocal::texthash('foil'  => 'Foil',
        'value' => 'Value',         'value' => 'Value',
Line 178  sub handler { Line 201  sub handler {
   
 # ------------------------------------------------ Prefix for everything stored  # ------------------------------------------------ Prefix for everything stored
     $prefix=$env{'request.course.id'}.'.'.$symb.'.0.';      $prefix=$env{'request.course.id'}.'.'.$symb.'.0.';
   #----------------------------------- Prefix for storing weight of Problem Parts
       my $weightprefix=$env{'request.course.id'}.'.'.$symb.'.';
 # ---------------------------------------------------------- Anything to store?  # ---------------------------------------------------------- Anything to store?
   
     if (($symb) && (defined($env{'form.questiontype'}))) {      if (($symb) && (defined($env{'form.questiontype'}))) {
Line 203  sub handler { Line 228  sub handler {
  $storecontent{$prefix.$parm}=~s/\s+$//s;   $storecontent{$prefix.$parm}=~s/\s+$//s;
     }      }
  }   }
   # ---------------------------------------------------- Set weights of hidden parts to zero
   # ------------------------------------------------------ and used part to 1
           $storecontent{$weightprefix.'essay.weight'}=0;
           $storecontent{$weightprefix.'numerical.weight'}=0;
           $storecontent{$weightprefix.'option.weight'}=0;
           $storecontent{$weightprefix.'radio.weight'}=0;
           $storecontent{$weightprefix.'string.weight'}=0;
           $storecontent{$weightprefix.$env{'form.questiontype'}.'.weight'}=1;
   
  my $reply=&Apache::lonnet::cput   my $reply=&Apache::lonnet::cput
     ('resourcedata',\%storecontent,      ('resourcedata',\%storecontent,
      $env{'course.'.$env{'request.course.id'}.'.domain'},       $env{'course.'.$env{'request.course.id'}.'.domain'},
      $env{'course.'.$env{'request.course.id'}.'.num'});       $env{'course.'.$env{'request.course.id'}.'.num'});
   
     }      }
           
       &Apache::lonnet::devalidatecourseresdata(
                           $env{'course.'.$env{'request.course.id'}.'.num'},
                           $env{'course.'.$env{'request.course.id'}.'.domain'});
 # ------------------------------------------------------------------- Read Data  # ------------------------------------------------------------------- Read Data
   
     %qparms=&Apache::lonnet::dump('resourcedata',      %qparms=&Apache::lonnet::dump('resourcedata',
Line 234  sub handler { Line 271  sub handler {
  $r->print('<table border="2" bgcolor="#FFFFFF" width="100%"><tr><td>'.   $r->print('<table border="2" bgcolor="#FFFFFF" width="100%"><tr><td>'.
                   &rawrendering($symb).                    &rawrendering($symb).
                   '</td></tr></table><br />');                    '</td></tr></table><br />');
         $r->print('<form name="simpleedit" method="POST">');          $r->print('<form name="simpleedit" method="post">');
 # Question Type          # Question Type
  my %questiontypes=('radio'  =>           my %questiontypes=(
                                '1 out of N multiple choice (radio button)',                 'radio'     => '1 out of N multiple choice (radio button)',
    'option' => 'Option response',                 'option'    => 'Option Response',
                            'string' => 'Short string response',                 'string'    => 'Short string response',
                            'essay'  => 'Essay, open end');                 'essay'     => 'Essay, open end',
                  'numerical' => 'Numerical Response');
         $qtype=$qparms{$prefix.'questiontype'};          $qtype=$qparms{$prefix.'questiontype'};
         unless (defined($qtype)) { $qtype='radio'; }          unless (defined($qtype)) { $qtype='radio'; }
         unless ($questiontypes{$qtype}) { $qtype='radio'; }          unless ($questiontypes{$qtype}) { $qtype='radio'; }
         $r->print('<b>'.&mt('Question Type').          $r->print('<b>'.&mt('Question Type').': '
   ': '.&Apache::loncommon::select_form             .&Apache::loncommon::select_form(
                                ($qtype,'questiontype',%questiontypes).                  $qtype,
                   'questiontype',
                   &Apache::lonlocal::texthash(%questiontypes)).
   '</b><br /><input type="submit" value="'.&mt('Save and Edit').    '</b><br /><input type="submit" value="'.&mt('Save and Edit').
   '" /><p>&nbsp;</p>');    '" /><p>&nbsp;</p>');
   # Script
           if ($qtype eq 'numerical') {
              $r->print(&script());
           }
 # Question Text  # Question Text
         $r->print(&questiontext());          $r->print(&questiontext());
 # Radio, Option ===  # Radio, Option ===
Line 258  sub handler { Line 302  sub handler {
             unless (defined($maxfoils)) { $maxfoils=10; }              unless (defined($maxfoils)) { $maxfoils=10; }
             unless ($maxfoils=~/^\d+$/) { $maxfoils=10; }              unless ($maxfoils=~/^\d+$/) { $maxfoils=10; }
             if ($maxfoils<=0) { $maxfoils=10; }              if ($maxfoils<=0) { $maxfoils=10; }
     my %randomizes=('yes' => 'Display foils in random order',              my %randomizes=(
     'no'  => 'Display foils in order given');                     'yes' => 'Display foils in random order',
                      'no'  => 'Display foils in order given');
     my $randomize=$qparms{$prefix.'randomize'};      my $randomize=$qparms{$prefix.'randomize'};
             unless (defined($randomize)) { $randomize='yes'; }              unless (defined($randomize)) { $randomize='yes'; }
             unless ($randomizes{$randomize}) { $randomize='yes'; }              unless ($randomizes{$randomize}) { $randomize='yes'; }
Line 267  sub handler { Line 312  sub handler {
   '<table bgcolor="#00ee44" cellspacing="4" cellpadding="2">'.    '<table bgcolor="#00ee44" cellspacing="4" cellpadding="2">'.
           '<tr><td>'.&mt('Max number of foils displayed').            '<tr><td>'.&mt('Max number of foils displayed').
 ': <input type="text" size="3" name="maxfoils" value="'.$maxfoils.'" />&nbsp;&nbsp;'.  ': <input type="text" size="3" name="maxfoils" value="'.$maxfoils.'" />&nbsp;&nbsp;'.
       &Apache::loncommon::select_form                        &Apache::loncommon::select_form(
       ($randomize,'randomize',%randomizes).                            $randomize,
                             'randomize',
                             &Apache::lonlocal::texthash(%randomizes)).
   '</td></tr><tr><td bgcolor="#AAAAAA">');    '</td></tr><tr><td bgcolor="#AAAAAA">');
 # Option Response: Options  # Option Response: Options
     if ($qtype eq 'option') {      if ($qtype eq 'option') {
Line 310  sub handler { Line 357  sub handler {
             unless ($stringtypes{$stringtype}) { $stringtype='cs'; }              unless ($stringtypes{$stringtype}) { $stringtype='cs'; }
     $r->print(      $r->print(
   '<table bgcolor="#00ee44" cellspacing="4" cellpadding="2">'.    '<table bgcolor="#00ee44" cellspacing="4" cellpadding="2">'.
           '<tr><td>'.&mt('Correct answer').': <input type="text" size="20" name="stringanswer" value="'.$stringanswer.'" />&nbsp;&nbsp;'.                    '<tr><td><label>'.&mt('Correct answer').': <input type="text" size="20" name="stringanswer" value="'.$stringanswer.'" /></label>&nbsp;&nbsp;'.
       &Apache::loncommon::select_form                        &Apache::loncommon::select_form(
       ($stringtype,'stringtype',%stringtypes).                            $stringtype,
                             'stringtype',
                             &Apache::lonlocal::texthash(%stringtypes)).
   '</td></tr></table><br />');    '</td></tr></table><br />');
 # Hint  # Hint
     $r->print(&hint());      $r->print(&hint());
  }   }
           if ($qtype eq 'numerical') {
               my $numericalanswer=$qparms{$prefix.'numericalanswer'};
               unless (defined($numericalanswer)) { $numericalanswer=''; }
               my $numericaltolerance=$qparms{$prefix.'numericaltolerance'};
               unless (defined($numericaltolerance)) { $numericaltolerance='5%'; }
               my $numericalsigfigs=$qparms{$prefix.'numericalsigfigs'};
               unless (defined($numericalsigfigs)) { $numericalsigfigs='1,15'; }
   
               $r->print(
                   '<table bgcolor="#00ee44" cellspacing="4" cellpadding="2">'.
                     '<tr><td><label>'.&mt('Correct answer').': <input type="text" size="20" name="numericalanswer" value="'.$numericalanswer.'" /></label>&nbsp;&nbsp;'.
                     '<label>'.&mt('Unit').':  <input type="text" size="5" name="numericalunit" value="'.$qparms{$prefix.'numericalunit'}.'" /></label>&nbsp;&nbsp;'.
                     '<label>'.&mt('Format').':  <input type="text" size="5" name="numericalformat" value="'.$qparms{$prefix.'numericalformat'}.'" /></label>&nbsp;&nbsp;'.
                     '<label>'.&mt('Tolerance').':  <input type="text" size="5" name="numericaltolerance" value="'.$numericaltolerance.'" /></label>&nbsp;&nbsp;'.
                     '<label>'.&mt('Significant digits').':  <input type="text" size="5" name="numericalsigfigs" value="'.$numericalsigfigs.'" /></label>'.
                      '</td></tr></table><br />');
               $r->print(&hint());
           }
 # Store Button  # Store Button
  $r->print(   $r->print(
   '<input type="submit" value="'.&mt('Save and Edit').'" /></form>');    '<input type="submit" value="'.&mt('Save and Edit').'" /></form>');

Removed from v.1.20  
changed lines
  Added in v.1.20.2.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.