--- loncom/interface/lonmeta.pm	2005/10/19 21:53:16	1.114
+++ loncom/interface/lonmeta.pm	2005/10/25 18:46:03	1.117
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Metadata display handler
 #
-# $Id: lonmeta.pm,v 1.114 2005/10/19 21:53:16 banghart Exp $
+# $Id: lonmeta.pm,v 1.117 2005/10/25 18:46:03 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -237,23 +237,8 @@ sub diffgraph {
 # The field names
 sub fieldnames {
     my $file_type=shift;
-    my %fields;
-    %fields = 
-        (%fields,
-         'title' => 'Title',
-         'author' =>'Author(s)',
-         'authorspace' => 'Author Space',
-         'modifyinguser' => 'Last Modifying User',
-         'subject' => 'Subject',
-         'keywords' => 'Keyword(s)',
-         'notes' => 'Notes',
-         'abstract' => 'Abstract',
-         'lowestgradelevel' => 'Lowest Grade Level',
-         'highestgradelevel' => 'Highest Grade Level');
-    if ($file_type eq 'portfolio') {
-        %fields = 
-        (%fields,
-         'title' => 'Title',
+    my %fields = 
+        ('title' => 'Title',
          'author' =>'Author(s)',
          'authorspace' => 'Author Space',
          'modifyinguser' => 'Last Modifying User',
@@ -263,21 +248,6 @@ sub fieldnames {
          'abstract' => 'Abstract',
          'lowestgradelevel' => 'Lowest Grade Level',
          'highestgradelevel' => 'Highest Grade Level');
-    }
-    if ($file_type eq 'restrictedportfolio') {
-        %fields = 
-        (%fields,
-         'metadata.title' => 'Title',
-         'metadata.author' =>'Author(s)',
-         'metadata.authorspace' => 'Author Space',
-         'metadata.modifyinguser' => 'Last Modifying User',
-         'metadata.subject' => 'Subject',
-         'metadata.keywords' => 'Keyword(s)',
-         'metadata.notes' => 'Notes',
-         'metadata.abstract' => 'Abstract',
-         'metadata.lowestgradelevel' => 'Lowest Grade Level',
-         'metadata.highestgradelevel' => 'Highest Grade Level');
-    }        
     if (! defined($file_type) || $file_type ne 'portfolio') {
         %fields = 
         (%fields,
@@ -506,10 +476,39 @@ sub relatedfield {
 
 sub prettyinput {
     my ($type,$value,$fieldname,$formname,
-	$relatedsearchflag,$relatedsep,$relatedvalue,$size)=@_;
+	$relatedsearchflag,$relatedsep,$relatedvalue,$size,$course_key)=@_;
     if (! defined($size)) {
         $size = 80;
     }
+    if (defined($course_key)) {
+        my $stu_add;
+        my $only_one;
+        if ($env{$course_key.'.metadata.'.$_.'.options'} =~ m/stuadd/) {
+            $stu_add = 'true';
+        }
+        if ($env{$course_key.'.metadata.'.$_.'.options'} =~ m/onlyone/) {
+            $only_one = 'true';
+        }
+        if ($type eq 'author') {
+        }
+        if ($type eq 'authorspace') {
+        }
+        if ($type eq 'modifyinguser') {
+        }
+        if ($type eq 'subject') {
+        }
+        if ($type eq 'keywords') {
+        }
+        if ($type eq  'notes') {
+        }
+        if ($type eq  'abstract') {
+        if (($type eq 'lowestgradelevel') ||
+	    ($type eq 'highestgradelevel')) {
+	    return &Apache::loncommon::select_level_form($value,$fieldname).
+            &relatedfield(0,$relatedsearchflag,$relatedsep); 
+        }
+        return(); 
+    }
     # Language
     if ($type eq 'language') {
 	return &selectbox($fieldname,
@@ -1033,18 +1032,12 @@ ENDEDIT
         $r->print('<script language="JavaScript">'.
                   &Apache::loncommon::browser_and_searcher_javascript().
                   '</script>');
-        if (($file_type eq 'portfolio') && $env{'form.metacourse'}) {
-            $file_type = 'restrictedportfolio';
-        }
         my %lt=&fieldnames($file_type);
 	my $output;
 	my @fields;
 	if ($file_type eq 'portfolio') {
 	    @fields =  ('author','title','subject','keywords','abstract','notes','lowestgradelevel',
 	                'highestgradelevel');
-	} elsif ($file_type eq 'restrictedportfolio') {
-	    @fields =  ('metadata.author','metadata.title','metadata.subject','metadata.keywords','metadata.abstract','metadata.notes','metadata.lowestgradelevel',
-	                'metadata.highestgradelevel');
 	} else {
 	    @fields = ('author','title','subject','keywords','abstract','notes',
                  'copyright','customdistributionfile','language',
@@ -1061,20 +1054,28 @@ ENDEDIT
                 $Apache::lonpublisher::metadatafields{'copyright'}=
                     'default';
             }
-            $output.=('<p>'.$lt{$_}.': '.
-                      &prettyinput($_,
+            if ($env{'form.metacourse'}) {
+                # handle restrictions here
+                $env{'form.metacourse'} =~ m/(^.+)\.description$/;
+                my $key_base = $1;
+                if ($env{$key_base.'.metadata.'.$_.'.options'} =~ m/active/) {
+                    $output.=('<p>'.$lt{$_}.': '.
+                            &prettyinput($_,
+				   $Apache::lonpublisher::metadatafields{$_},
+				   'new_'.$_,'defaultmeta',undef,undef,undef,undef,$key_base).'</p>');
+                }
+            } else {
+                $output.=('<p>'.$lt{$_}.': '.
+                            &prettyinput($_,
 				   $Apache::lonpublisher::metadatafields{$_},
 				   'new_'.$_,'defaultmeta').'</p>');
- 
+            }
         }
         if ($env{'form.store'}) {
             my $mfh;
             my $formname='store'; 
             my $file_content;
             foreach my $meta_field (keys %env) {
-                if ($meta_field=~m/^form.instmeta_(.+)_(\d+)$/) {
-                    $r->print('Found a field<br>');
-                }
                 if (&Apache::loncommon::get_env_multiple('form.keywords')) {
                 $Apache::lonpublisher::metadatafields{'coursekeyword'} = 
                         join (', ', &Apache::loncommon::get_env_multiple('form.keywords'));
@@ -1109,7 +1110,6 @@ ENDEDIT
                 $env{'form.'.$formname.'.filename'}=$new_fn;
                 &Apache::lonnet::userfileupload('uploaddoc','',
 	        	 'portfolio'.$env{'form.currentpath'});
-	        my $status =&Apache::lonnet::userfileupload($formname,'','portfolio');
                 if (&Apache::lonnet::userfileupload($formname,'','portfolio') eq 'error: no uploaded file') {
                     $r->print('<p><font color="red">'.
                       &mt('Could not write metadata').', '.