--- loncom/homework/structuretags.pm 2003/11/21 20:21:20 1.226 +++ loncom/homework/structuretags.pm 2004/02/06 22:38:24 1.227.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.226 2003/11/21 20:21:20 albertel Exp $ +# $Id: structuretags.pm,v 1.227.2.2 2004/02/06 22:38:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -429,26 +429,19 @@ sub start_problem { } } elsif ($target eq 'web') { my $name= &get_resource_name($parstack,$safeeval); - if ($status eq 'CAN_ANSWER') { - # create a page header and exit - $result.="$head_tag_start$name + $result.="$head_tag_start$name $body_tag_start \n $form_tag_start". - ''; - if ($ENV{'request.state'} eq "construct") { - $result.= &problem_web_to_edit_header($ENV{'form.rndseed'}); - } - # if we are viewing someone else preserve that info - if (defined $ENV{'form.grade_symb'}) { - foreach my $field ('symb','courseid','domain','username') { - $result .= ''."\n"; - } + ''; + # create a page header and exit + if ($ENV{'request.state'} eq "construct") { + $result.= &problem_web_to_edit_header($ENV{'form.rndseed'}); + } + # if we are viewing someone else preserve that info + if (defined $ENV{'form.grade_symb'}) { + foreach my $field ('symb','courseid','domain','username') { + $result .= ''."\n"; } - } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' - || $status eq 'CLOSED' || $status eq 'UNAVALAILABLE' || - $status eq 'INVALID_ACCESS') { - $result.=$head_tag_start. - "$name\n$body_tag_start\n"; } } elsif ($target eq 'tex') { my $startminipage = ''; @@ -461,7 +454,7 @@ sub start_problem { my @packages = split /,/,$packages; my $allow_print_points = 0; foreach my $partial_key (@packages) { - if ($partial_key=~m/part_0/) { + if ($partial_key=~m/^part_0$/) { $allow_print_points=1; } } @@ -524,7 +517,7 @@ sub end_problem { if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') { if ( $target eq 'grade' && $Apache::inputtags::part eq '0' && - $status eq 'CAN_ANSWER' ) { + ($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode)) { # if part is zero, no s existed, so we need to the grading &Apache::inputtags::grade; } elsif ( ($target eq 'web' || $target eq 'tex') && @@ -539,17 +532,9 @@ sub end_problem { (($target eq 'web') && ($ENV{'request.state'} ne 'construct')) || ($target eq 'answer') || ($target eq 'tex') ) { - if ($status eq 'CAN_ANSWER') { - if ($target ne 'tex' && - $ENV{'form.answer_output_mode'} ne 'tex') { - $result.="\n"; - } - } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' || - $status eq 'UNCHECKEDOUT' || $status eq 'INVALID_ACCESS') { - if ($target ne 'tex' && - $ENV{'form.answer_output_mode'} ne 'tex') { - $result.="\n"; - } + if ($target ne 'tex' && + $ENV{'form.answer_output_mode'} ne 'tex') { + $result.="\n"; } if ($target eq 'web') { $result.=&Apache::lonxml::xmlend(); @@ -984,11 +969,11 @@ sub start_part { $result.='\noindent \end{minipage}\vskip 0 mm \noindent \begin{minipage}{\textwidth}\noindent'; } my $weight = &Apache::lonnet::EXT("resource.$id.weight"); - my $allkeys=&Apache::lonnet::metadata($ENV{'request.uri'},'keys'); + my $allkeys=&Apache::lonnet::metadata($ENV{'request.uri'},'packages'); my @allkeys = split /,/,$allkeys; my $allow_print_points = 0; foreach my $partial_key (@allkeys) { - if ($partial_key=~m/\_(\d*)\_weight/) { + if ($partial_key=~m/^part_(.*)$/) { if ($1 ne '0') {$allow_print_points=1;} } } @@ -1024,7 +1009,9 @@ sub end_part { my $result=''; if ( $target eq 'meta' ) { $result=''; - } elsif ( $target eq 'grade' && $status eq 'CAN_ANSWER' && !$hidden) { + } elsif ($target eq 'grade' && + ($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode) && + !$hidden) { $result=&Apache::inputtags::grade; } elsif (($target eq 'web' || $target eq 'tex') && !$hidden ) { my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,