--- loncom/homework/optionresponse.pm 2010/02/05 15:34:02 1.159
+++ loncom/homework/optionresponse.pm 2010/02/05 21:38:41 1.161
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: optionresponse.pm,v 1.159 2010/02/05 15:34:02 www Exp $
+# $Id: optionresponse.pm,v 1.161 2010/02/05 21:38:41 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -190,13 +190,14 @@ sub end_foilgroup {
my $TeXlayout=&Apache::lonxml::get_param('TeXlayout',$parstack,$safeeval,
-2,0);
+ my $checkboxvalue=&Apache::lonxml::get_param('checkboxvalue',$parstack,$safeeval);
if ($target eq 'tex' && $tex_option_switch eq 'nochoice') {@opt=();}
&Apache::lonxml::debug("Options are $#opt");
my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');
my $randomize = &Apache::lonxml::get_param('randomize',$parstack,
$safeeval,'-2');
if ($target eq 'web' || $target eq 'tex') {
- $result.=&displayfoils($target,$max,$randomize,$TeXlayout,@opt);
+ $result.=&displayfoils($target,$max,$randomize,$TeXlayout,$checkboxvalue,@opt);
$Apache::lonxml::post_evaluate=0;
} elsif ( $target eq 'answer') {
$result.=&displayanswers($max,$randomize,@opt);
@@ -359,6 +360,15 @@ sub displayanswers {
return $result;
}
+sub check_box_opt {
+ my ($target,$checkboxvalue,@opt)=@_;
+# Check if we are in checkbox mode: checkboxvalue specified, on web, only two options.
+# If so, return "checked" value
+ if ($#opt!=1) { return ''; }
+ if ($target ne 'web') { return ''; }
+ return $checkboxvalue;
+}
+
sub check_for_invalid {
my ($names,$options) = @_;
my %bad_names;
@@ -381,7 +391,7 @@ sub check_for_invalid {
}
sub displayfoils {
- my ($target,$max,$randomize,$TeXlayout,@opt)=@_;
+ my ($target,$max,$randomize,$TeXlayout,$checkboxvalue,@opt)=@_;
if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;}
my @names = @{ $Apache::response::foilgroup{'names'} };
my @truelist;
@@ -427,6 +437,11 @@ sub displayfoils {
my $temp=1;
my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});
my $internal_counter=$Apache::lonxml::counter;
+ my $checkboxopt=&check_box_opt($target,$checkboxvalue,@opt);
+ if ($checkboxopt) {
+ $result.=' '.&mt('Choices: ').''.$opt[0].','.$opt[1].'. '.
+ &mt('Select all that are [_1].',$checkboxopt);
+ }
foreach $name (@whichopt) {
my $text=$Apache::response::foilgroup{$name.'.text'};
if ($text!~/^\s*$/) {
@@ -463,9 +478,6 @@ sub displayfoils {
}
}
}
-# debug for checkbox
- my $checkboxopt='';
-# end debug for checkbox
if ($target ne 'tex') {
if ($Apache::lonhomework::type ne 'exam') {
# we are on the web, this is not an exam, and the problem can be answered
@@ -487,8 +499,8 @@ sub displayfoils {
# defopt is what the field is going to start out with: either previous choice or altopt
# fieldname is this input field's name after HWVAL_
$optionlist=''.
- '\n";
+ '\n";
} else {
# classic selection list
$optionlist='