--- loncom/homework/lonsimpleproblemedit.pm 2009/06/11 16:48:28 1.23 +++ loncom/homework/lonsimpleproblemedit.pm 2009/08/17 19:46:49 1.25 @@ -1,7 +1,7 @@ # The LearningOnline Network # Simple Problem Parameter Setting "Editor" # -# $Id: lonsimpleproblemedit.pm,v 1.23 2009/06/11 16:48:28 bisitz Exp $ +# $Id: lonsimpleproblemedit.pm,v 1.25 2009/08/17 19:46:49 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -95,6 +95,19 @@ sub hint { ENDHINT } +sub script { + my $text=$qparms{$prefix.'numericalscript'}; + my $ht=&mt('Scripting (optional)'); + return (< +$ht
+ + + +
+ENDSCRIPT +} + sub foil { my $number=shift; my %values=''; @@ -207,6 +220,10 @@ sub handler { ('resourcedata',\%storecontent, $env{'course.'.$env{'request.course.id'}.'.domain'}, $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 @@ -254,7 +271,8 @@ sub handler { '1 out of N multiple choice (radio button)', 'option' => 'Option response', 'string' => 'Short string response', - 'essay' => 'Essay, open end'); + 'essay' => 'Essay, open end', + 'numerical' => 'Numerical response'); $qtype=$qparms{$prefix.'questiontype'}; unless (defined($qtype)) { $qtype='radio'; } unless ($questiontypes{$qtype}) { $qtype='radio'; } @@ -263,6 +281,10 @@ sub handler { ($qtype,'questiontype',%questiontypes). '

 

'); +# Script + if ($qtype eq 'numerical') { + $r->print(&script()); + } # Question Text $r->print(&questiontext()); # Radio, Option === @@ -324,13 +346,31 @@ sub handler { unless ($stringtypes{$stringtype}) { $stringtype='cs'; } $r->print( ''. - '
'.&mt('Correct answer').':   '. + '
  '. &Apache::loncommon::select_form ($stringtype,'stringtype',%stringtypes). '

'); # 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( + ''. + '
  '. + '  '. + '  '. + '  '. + ''. + '

'); + $r->print(&hint()); + } # Store Button $r->print( '');