--- loncom/homework/hint.pm 2006/12/19 14:53:17 1.67 +++ loncom/homework/hint.pm 2008/11/19 18:34:56 1.73 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # implements the tags that control the hints # -# $Id: hint.pm,v 1.67 2006/12/19 14:53:17 www Exp $ +# $Id: hint.pm,v 1.73 2008/11/19 18:34:56 jms Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,6 +26,61 @@ # http://www.lon-capa.org/ # +=head1 NAME + +Apache::hinttags + +=head1 SYNOPSIS + +This handler coordinates the delivery of hints to students working on LON-CAPA problems and assignments. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 SUBROUTINES + +=over + +=item start_hintgroup() + +=item end_hintgroup() + +=item start_numericalhint() + +=item end_numericalhint() + +=item start_formulahint() + +=item end_formulahint() + +=item start_mathhint() + +=item end_mathhint() + +=item start_customhint() + +=item end_customhint() + +=item start_stringhint() + +=item end_stringhint() + +=item start_hintpart() + +=item end_hintpart() + +=item start_optionhint() + +=item end_optionhint() + +=item start_radiobuttonhint() + +=item end_radiobuttonhint() + +=back + +=cut + package Apache::hinttags; use strict; @@ -68,13 +123,12 @@ sub start_hintgroup { $result .= '\keephidden{'; } elsif ($target eq 'edit') { $result.=&Apache::edit::tag_start($target,$token); - $result.=&Apache::edit::select_arg('Show hint even if problem Correct:','showoncorrect',[['no',&mt('No')],['yes',&mt('Yes')]],$token); + $result.=&Apache::edit::select_arg('Show hint even if problem Correct:','showoncorrect',['no','yes'],$token); $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); } elsif ($target eq 'modified') { my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'showoncorrect'); if ($constructtag) { $result =&Apache::edit::rebuild_tag($token); - $result.=&Apache::edit::handle_insert(); } } @Apache::hint::which=(); @@ -141,7 +195,6 @@ sub start_numericalhint { } if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result .= &Apache::edit::handle_insert(); } } elsif ($target eq 'web') { &Apache::response::reset_params(); @@ -162,7 +215,7 @@ sub end_numericalhint { my $partid=$Apache::inputtags::part; my $id=$Apache::inputtags::hint[-1]; - #id submissions occured under + #id submissions occurred under my $submitid=$Apache::inputtags::response[-1]; my $response = $Apache::lonhomework::history{ @@ -256,7 +309,6 @@ sub start_mathhint { $safeeval,'name','cas', 'args'); $result = &Apache::edit::rebuild_tag($token); - $result .= &Apache::edit::handle_insert(); } elsif ($target eq 'web') { &Apache::response::reset_params(); } @@ -314,7 +366,6 @@ sub start_customhint { $constructtag=&Apache::edit::get_new_args($token,$parstack, $safeeval,'name'); $result = &Apache::edit::rebuild_tag($token); - $result .= &Apache::edit::handle_insert(); } elsif ($target eq 'web') { &Apache::response::reset_params(); } @@ -381,7 +432,6 @@ sub start_stringhint { $safeeval,'name','answer', 'type'); $result = &Apache::edit::rebuild_tag($token); - $result .= &Apache::edit::handle_insert(); } elsif ($target eq 'web') { &Apache::response::reset_params(); } @@ -400,7 +450,7 @@ sub end_stringhint { &Apache::response::setup_params('stringhint',$safeeval); my $partid=$Apache::inputtags::part; my $id=$Apache::inputtags::hint[-1]; - #id submissions occured under + #id submissions occurred under my $submitid=$Apache::inputtags::response[-1]; my $response = $Apache::lonhomework::history{ "resource.$partid.$submitid.submission"}; @@ -427,6 +477,9 @@ sub end_stringhint { my $args_ref = &Apache::caparesponse::setup_capa_args($safeeval,$parstack, \@args,$response); + if ($$args_ref{'type'} eq '') { + $$args_ref{'type'} = 'ci'; + } &Apache::caparesponse::add_in_tag_answer($parstack,$safeeval); my (@final_awards,@final_msgs,@ans_names); my %answer = &Apache::caparesponse::get_answer(); @@ -492,7 +545,6 @@ sub start_hintpart { $safeeval,'on'); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result.=&Apache::edit::handle_insert(); } } return $result; @@ -522,7 +574,6 @@ sub start_optionhint { 'answer','concept'); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result .= &Apache::edit::handle_insert(); } } elsif ($target eq 'meta') { $result=&Apache::response::meta_package_write('numericalhint'); @@ -537,7 +588,7 @@ sub end_optionhint { my ($foilmatch,$conceptmatch)=(-1,-1); my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval); my $partid=$Apache::inputtags::part; - #id submissions occured under + #id submissions occurred under my $submitid=$Apache::inputtags::response[-1]; my $part_id="$partid.$submitid"; my %answer; @@ -601,7 +652,6 @@ sub start_radiobuttonhint { 'answer'); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result .= &Apache::edit::handle_insert(); } } elsif ($target eq 'meta') { $result=&Apache::response::meta_package_write('numericalhint'); @@ -618,7 +668,7 @@ sub end_radiobuttonhint { my $answer=&Apache::lonxml::get_param('answer',$parstack,$safeeval); eval('@answer ='.$answer); my $partid=$Apache::inputtags::part; - #id submissions occured under + #id submissions occurred under my $submitid=$Apache::inputtags::response[-1]; my $part_id="$partid.$submitid"; my $response = $Apache::lonhomework::history{