[LON-CAPA-cvs] cvs: loncom /homework outputtags.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 02 May 2003 19:10:43 -0000


albertel		Fri May  2 15:10:43 2003 EDT

  Modified files:              
    /loncom/homework	outputtags.pm 
  Log:
  - part 2 of BUG#1276
  - <displayweight /> now for multipart problems adds up all of the weights if it is outside of a <part> tag inside of a problem
  
  
Index: loncom/homework/outputtags.pm
diff -u loncom/homework/outputtags.pm:1.26 loncom/homework/outputtags.pm:1.27
--- loncom/homework/outputtags.pm:1.26	Fri May  2 14:56:29 2003
+++ loncom/homework/outputtags.pm	Fri May  2 15:10:43 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # tags that create controlled output
 #
-# $Id: outputtags.pm,v 1.26 2003/05/02 18:56:29 albertel Exp $
+# $Id: outputtags.pm,v 1.27 2003/05/02 19:10:43 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -123,10 +123,25 @@
     my $status=$Apache::inputtags::status['-1'];
     if ($target eq 'web' || $target eq 'tex') {
 	my $id = $Apache::inputtags::part;
-	my $weight = &Apache::lonnet::EXT("resource.$id.weight");
-	&Apache::lonxml::debug("duedatebox found $weight for $id");
-	if (!defined($weight) || ($weight eq '')) { $weight=1; }
-	$result.=$weight;
+	if ($id ne '0') {
+	    my $weight = &Apache::lonnet::EXT("resource.$id.weight");
+	    if (!defined($weight) || ($weight eq '')) { $weight=1; }
+	    $result.=$weight;
+	} else {
+	    my $metadata = &Apache::lonnet::metadata($ENV{'request.uri'},
+						     'packages');
+	    &Apache::lonxml::debug("metadata for $ENV{'request.uri'} is $metadata");
+	    my $weight;
+	    foreach (split(/\,/,$metadata)) {
+		if ($_ =~ /^part_(.*)$/) {
+		    my $part = $1;
+		    my $pweight=&Apache::lonnet::EXT("resource.$part.weight");
+		    if (!defined($pweight) || ($pweight eq '')) { $pweight=1; }
+		    $weight+=$pweight;
+		}
+	    }
+	    $result=$weight;
+	}
     } elsif ( $target eq 'edit' ) {
 	$result=&Apache::edit::tag_start($target,$token);
 	$result.='</td></tr>';