--- loncom/interface/lonmeta.pm	2007/01/02 12:54:40	1.192
+++ loncom/interface/lonmeta.pm	2007/01/12 20:04:16	1.195
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Metadata display handler
 #
-# $Id: lonmeta.pm,v 1.192 2007/01/02 12:54:40 raeburn Exp $
+# $Id: lonmeta.pm,v 1.195 2007/01/12 20:04:16 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1203,6 +1203,18 @@ ENDEDIT
 	my @fields;
 	my $added_metadata_fields;
 	my @added_order;
+        if ($file_type eq 'groups') {
+            $Apache::lonpublisher::metadatafields{'courserestricted'}=
+                'course.'.$env{'request.course.id'};
+        }
+        if ((! $Apache::lonpublisher::metadatafields{'courserestricted'}) &&
+                (! $env{'form.new_courserestricted'}) && (! $file_type eq 'groups')) {
+            $Apache::lonpublisher::metadatafields{'courserestricted'}=
+                'none';
+        } elsif ($env{'form.new_courserestricted'}) {
+            $Apache::lonpublisher::metadatafields{'courserestricted'}=
+                $env{'form.new_courserestricted'};
+        }
 	if ($file_type eq 'portfolio' || $file_type eq 'groups') {
 	    if(exists ($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.fieldlist'})) {
 	        # retrieve fieldnames (in order) from the course restricted list
@@ -1212,11 +1224,14 @@ ENDEDIT
 	        @fields =  ('author','title','subject','keywords','abstract',
 			    'notes','lowestgradelevel',
 	                    'highestgradelevel','standards');
-	        $added_metadata_fields = &Apache::lonparmset::get_added_meta_fieldnames();
-	        if ($env{'course.'.$env{'request.course.id'}.'.metadata.addedorder'}) {
-	            @added_order = split(/,/,$env{'course.'.$env{'request.course.id'}.'.metadata.addedorder'});
-	        }
-	        $env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.fieldlist'} = join(",",@fields);
+                if ($Apache::lonpublisher::metadatafields{'courserestricted'} =~ /^course\.($match_domain\_$match_courseid)$/) {
+                    my $assoc_crs = $1;
+	            $added_metadata_fields = &Apache::lonparmset::get_added_meta_fieldnames($assoc_crs);
+	            if ($env{'course.'.$assoc_crs.'.metadata.addedorder'}) {
+	                @added_order = split(/,/,$env{'course.'.$assoc_crs.'.metadata.addedorder'});
+	            }
+	            $env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.fieldlist'} = join(",",@fields);
+                }
 	    }
 	} else {
 	    @fields = ('author','title','subject','keywords','abstract','notes',
@@ -1225,18 +1240,6 @@ ENDEDIT
 		       'lowestgradelevel','highestgradelevel','sourceavail','sourcerights',
 		       'obsolete','obsoletereplacement');
         }
-        if ($file_type eq 'groups') {
-            $Apache::lonpublisher::metadatafields{'courserestricted'}=
-                'course.'.$env{'request.course.id'}; 
-        }
-        if ((! $Apache::lonpublisher::metadatafields{'courserestricted'}) &&
-                (! $env{'form.new_courserestricted'}) && (! $file_type eq 'groups')) {
-            $Apache::lonpublisher::metadatafields{'courserestricted'}=
-                'none';
-        } elsif ($env{'form.new_courserestricted'}) {
-            $Apache::lonpublisher::metadatafields{'courserestricted'}=
-                $env{'form.new_courserestricted'}; 
-        }           
         if (! $Apache::lonpublisher::metadatafields{'copyright'}) {
                 $Apache::lonpublisher::metadatafields{'copyright'}=
 		    'default';
@@ -1410,10 +1413,10 @@ sub update_metadata_table {
     my ($udom,$uname,$remainder) =
         ($uri=~m -^/+(?:uploaded|editupload)/+($match_domain)/+($match_name)/+(.*)$-);
 
-    if ($remainder =~ /groups\/(\w+)\/portfolio(\/.+)$/) {
+    if ($remainder =~ /^groups\/(\w+)\/portfolio(\/.+)$/) {
         $group = $1;
         $file_name = $2;
-    } elsif ($remainder =~ /portfolio(\/.+)$/) {
+    } elsif ($remainder =~ /^portfolio(\/.+)$/) {
         $file_name = $1;
     }
     $file_name =~ s/\.meta$//;
@@ -1437,7 +1440,7 @@ sub update_metadata_table {
     if ($available) {
         my $result =
             &Apache::lonnet::update_portfolio_table($uname,$udom,
-            $file_name,'portfolio_metadata',$group);
+            $file_name,'portfolio_metadata',$group,'update');
     }
 }