--- loncom/homework/structuretags.pm 2006/02/16 02:03:25 1.336 +++ loncom/homework/structuretags.pm 2006/03/30 20:16:14 1.340 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.336 2006/02/16 02:03:25 albertel Exp $ +# $Id: structuretags.pm,v 1.340 2006/03/30 20:16:14 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::File(); use Apache::lonmenu; use Apache::lonlocal; use Apache::lonxml; +use Apache::lonenc(); use Time::HiRes qw( gettimeofday tv_interval ); BEGIN { &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag')); @@ -44,7 +45,7 @@ BEGIN { sub start_web { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $bodytext=&Apache::lonxml::get_all_text("/web",$parser,$style); - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { return $bodytext; } return ''; @@ -156,9 +157,8 @@ sub page_start { } my $form_tag_start; if (!defined($found{'form'})) { - $form_tag_start='
[4]; $result.=&Apache::edit::handle_insert(); - } elsif ($target eq 'web' && $$tagstack[0] ne 'problem' && - $env{'request.state'} eq "construct" ) { + } elsif (($target eq 'web' || $target eq 'webgrade') + && $$tagstack[0] eq 'library' + && $env{'request.state'} eq "construct" ) { ($result,$head_tag_start,$body_tag_start,$form_tag_start)= &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); my $name=&get_resource_name($parstack,$safeeval); @@ -999,8 +1000,8 @@ sub start_block { my $result; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $code = $token->[2]->{'condition'}; if (defined($code)) { if (!$Apache::lonxml::default_homework_loaded) { @@ -1043,8 +1044,8 @@ sub start_languageblock { my $result; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $include = $token->[2]->{'include'}; my $exclude = $token->[2]->{'exclude'}; my %languages=&Apache::loncommon::display_languages(); @@ -1096,8 +1097,8 @@ sub start_instructorcomment { my $result; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { $result=($env{'request.role'}=~/^(in|cc|au|ca|li)/); if ( (! $result) or ($env{'form.instructor_comments'} eq 'hide')) { my $skip=&Apache::lonxml::get_all_text("/instructorcomment", @@ -1125,8 +1126,8 @@ sub start_while { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $code = $token->[2]->{'condition'}; push( @Apache::structuretags::whileconds, $code); @@ -1158,8 +1159,8 @@ sub end_while { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $result; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $code = pop(@Apache::structuretags::whileconds); my $bodytext = pop(@Apache::structuretags::whilebody); my $line = pop(@Apache::structuretags::whileline); @@ -1192,8 +1193,8 @@ sub end_while { sub start_randomlist { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; - if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $body= &Apache::lonxml::get_all_text("/randomlist",$parser); my $b_parser= HTML::LCParser->new(\$body); $b_parser->xml_mode(1); @@ -1433,7 +1434,8 @@ sub end_part { sub start_preduedate { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'webgrade') { &Apache::lonxml::debug("State in preduedate is ". $Apache::inputtags::status['-1']); if (!$Apache::lonhomework::scantronmode && $Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && @@ -1451,7 +1453,7 @@ sub end_preduedate { sub start_postanswerdate { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - if ($target eq 'web' || $target eq 'grade') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'webgrade') { if ($Apache::lonhomework::scantronmode || $Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') { &Apache::lonxml::get_all_text("/postanswerdate",$parser,$style); @@ -1469,7 +1471,7 @@ sub end_postanswerdate { sub start_notsolved { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex') { + $target eq 'tex' || $target eq 'webgrade') { my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; &Apache::lonxml::debug("not solved has :$gradestatus:"); if ($gradestatus =~ /^correct/ && @@ -1505,8 +1507,8 @@ sub end_solved { sub start_problemtype { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; - if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || - $target eq 'tex' || $target eq 'analyze') { + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { my $mode=lc(&Apache::lonxml::get_param('mode',$parstack,$safeeval)); if (!defined($mode)) { $mode='show'; } my $for=&Apache::lonxml::get_param('for',$parstack,$safeeval);