--- loncom/homework/bridgetask.pm 2006/11/09 21:39:34 1.201 +++ loncom/homework/bridgetask.pm 2006/11/14 23:04:56 1.207 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.201 2006/11/09 21:39:34 albertel Exp $ +# $Id: bridgetask.pm,v 1.207 2006/11/14 23:04:56 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2104,8 +2104,10 @@ sub start_Dimension { } push(@Apache::bridgetask::dimension,$dim); &Apache::lonxml::startredirection(); - &enable_dimension_parsing($dim); - return &internal_location($dim); + if (!&skip_dimension_parsing($dim)) { + &enable_dimension_parsing($dim); + } + return;# &internal_location($dim); } sub start_QuestionText { @@ -2229,10 +2231,10 @@ sub end_Dimension { my $question = ('sub' x $dimension{$dim}{'depth'}).'question'; $question =~ s/^(.)/uc($1)/e; if ($dim_status eq 'pass') { - $dim_info.='

'.$question.' : you passed this '.$mandatory.' question

'; + $dim_info.='

'.$question.' : you passed the above '.$mandatory.' question

'; } if ($dim_status eq 'fail') { - $dim_info.='

'.$question.' : you did not pass this '.$mandatory.' question

'; + $dim_info.='

'.$question.' : you did not pass the above '.$mandatory.' question

'; } my %counts = &get_counts($dim,$instance,$parstack, $safeeval); @@ -2246,19 +2248,33 @@ sub end_Dimension { @{$dimension{$dim}{'criterias'}}) { my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; if ($type eq 'dimension') { - $result.=$dimension{$id}{'result'}; - next; + if (defined($dimension{$id}{'result'})) { + $result.=$dimension{$id}{'result'}; + next; + } else { + $dim_info .= + &nested_parse(\$dimension{$dim}{'criteria.'.$id}, + [@_],{'set_dim_id' => $id}); + } + } else { + my $criteria = + &nested_parse(\$dimension{$dim}{'criteria.'.$id}, + [@_]); + $dim_info .= &layout_web_Criteria($dim,$id,$criteria); } - my $criteria = - &nested_parse(\$dimension{$dim}{'criteria.'.$id}, - [@_]); - $dim_info .= &layout_web_Criteria($dim,$id,$criteria); } + # puts the results at the end of the dimension + $result .= $dim_info; - my $internal_location=&internal_location($dim); - $result=~s/\Q$internal_location\E/$dim_info/; + # puts the results at the beginning of the dimension + # my $internal_location=&internal_location($dim); + # $result=~s/\Q$internal_location\E/$dim_info/; } } + if ($result !~ /^\s*$/s) { + $result = "\n".'
'. + "\n".$result."\n
\n"; + } } elsif ($target eq 'webgrade') { # in case of any side effects that we need &nested_parse(\$dimension{$dim}{'intro'},[@_]); @@ -2595,7 +2611,7 @@ sub start_Criteria { $dimension{$dim}{'result'} .= &internal_location($id); } else { &Apache::lonxml::debug(" not stashing $dim $id"); - $result .= &internal_location($id); + #$result .= &internal_location($id); } } &Apache::lonxml::debug("Criteria $id with $dim"); @@ -2633,7 +2649,10 @@ sub layout_web_Criteria { $status_display=~s/^([a-z])/uc($1)/e; my $criteria_info.= '
'."\n\t".'

' - .$mandatory.' Criteria

'."\n\t".'

'."\n"; + .$mandatory.' Criteria'."\n\t".'

' + ."\n"; + $criteria =~ s/^\s*//s; + $criteria =~ s/\s*$//s; $criteria_info.= $criteria; $criteria_info.="\n\t".'

'. "\n\t".'

'.$status_display.'

'; @@ -2675,6 +2694,8 @@ sub layout_webgrade_Criteria { END_BUTTON } + $criteria =~ s/^\s*//s; + $criteria =~ s/\s*$//s; my $result = <