--- loncom/homework/chemresponse.pm 2003/06/30 21:59:03 1.9 +++ loncom/homework/chemresponse.pm 2003/07/01 21:04:48 1.10 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # chemical equation style response # -# $Id: chemresponse.pm,v 1.9 2003/06/30 21:59:03 albertel Exp $ +# $Id: chemresponse.pm,v 1.10 2003/07/01 21:04:48 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -229,8 +229,18 @@ sub end_organicstructure { sub edit_reaction_button { my ($id,$field,$molecule)=@_; + my $id_es=&Apache::lonnet::escape($id); + my $field_es=&Apache::lonnet::escape($field); + my $molecule_es=&Apache::lonnet::escape($molecule); my $result=< + + EDITREACTION return $result; } @@ -239,15 +249,22 @@ sub start_reactionresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; my $id = &Apache::response::start_response($parstack,$safeeval); - if ($target eq 'web') { + if ($target eq 'meta') { + } elsif ($target eq 'web') { $result.=&edit_reaction_button($id,"HWVAL_$id"); } elsif ($target eq "edit") { $result .=&Apache::edit::tag_start($target,$token); - $result .=&Apache::edit::text_arg('Answer:','answer',$token,40); my $answer=&Apache::lonxml::get_param('answer',$parstack, $safeeval); - $result .=&edit_reaction_button($id,&Apache::edit::html_element_name('answer'),$answer); + $result .=''. + &Apache::edit::text_arg('Answer:','answer',$token,40); + $result .=&edit_reaction_button($id,&Apache::edit::html_element_name('answer'),$answer).''; + $result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); + } elsif ($target eq 'modified') { + my $constructtag=&Apache::edit::get_new_args($token,$parstack, + $safeeval,'answer'); + if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } } return $result; } @@ -255,7 +272,26 @@ sub start_reactionresponse { sub end_reactionresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; - if ($target eq "edit") { + if ($target eq 'grade' && defined($ENV{'form.submitted'})) { + &Apache::response::setup_params($$tagstack[-1]); + my $response = &Apache::response::getresponse(); + if ( $response =~ /[^\s]/) { + my $partid = $Apache::inputtags::part; + my $id = $Apache::inputtags::response['-1']; + my $answer=&Apache::lonxml::get_param('answer',$parstack,$safeeval); + my %previous = &Apache::response::check_for_previous($response,$partid,$id); + $Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; + &Apache::lonxml::debug("submitted a $response for $answer
\n"); + my $ad; + if ($response eq $answer) { + $ad='EXACT_ANS'; + } else { + $ad='INCORRECT'; + } + &Apache::response::handle_previous(\%previous,$ad); + $Apache::lonhomework::results{"resource.$partid.$id.awarddetail"}=$ad; + } + } elsif ($target eq "edit") { $result.= &Apache::edit::tag_end($target,$token,''); } &Apache::response::end_response;