[LON-CAPA-cvs] cvs: loncom /interface lonmeta.pm

banghart lon-capa-cvs@mail.lon-capa.org
Sat, 27 Aug 2005 23:25:20 -0000


banghart		Sat Aug 27 19:25:20 2005 EDT

  Modified files:              
    /loncom/interface	lonmeta.pm 
  Log:
  	Changing student interface to read recently modified instructor metadata
  	fields, and allow entry. Not done, does not work yet. (in store
  	portion of present_editable_metadata)
  
  
Index: loncom/interface/lonmeta.pm
diff -u loncom/interface/lonmeta.pm:1.107 loncom/interface/lonmeta.pm:1.108
--- loncom/interface/lonmeta.pm:1.107	Thu Aug 25 16:46:32 2005
+++ loncom/interface/lonmeta.pm	Sat Aug 27 19:25:18 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Metadata display handler
 #
-# $Id: lonmeta.pm,v 1.107 2005/08/25 20:46:32 banghart Exp $
+# $Id: lonmeta.pm,v 1.108 2005/08/27 23:25:18 banghart Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1021,20 +1021,32 @@
 				   $Apache::lonpublisher::metadatafields{$_},
 				   'new_'.$_,'defaultmeta').'</p>');
             if ($env{'form.metacourse'}) {
-   
-    $r->print('This is the instructor metadata area<br />');
-    my @keywords = sort(split /, /,$env{$env{'form.metacourse'}.'.metadata.keywords'});
-    $r->print($env{'form.metacourse'}.'<br />');
-    $r->print('<form method="post" action="" size="3" >');
-    foreach my $word (@keywords) {
-        my $checked;
-        if ($Apache::lonpublisher::metadatafields{'coursekeyword'}=~ m/$word/) {
-            $checked = 1;
-        } else {
-            undef($checked);
+                $r->print('This is the instructor metadata area<br />');
+                # have to find all the metadata items, so we'll loop through and find them
+                $r->print('<form method="post" action="" size="3" >');
+                $r->print('The course is: '.$env{'form.metacourse'}.'<br>');
+                foreach my $key (sort keys %env) {
+                    if ($key=~m/^($env{'form.metacourse'}\.metadata\.)(\d+)\.title/) {
+                        my $key_base = $1;
+                        my $item_num = $2;
+                        # found one, so let's display it
+                        my $title = $env{$key_base.$item_num.'.title'};
+                        my $type = $env{$key_base.$item_num.'.type'};
+                        my @choices = sort(split /, /,$env{$key_base.$item_num.'.values'});
+                        $r->print($title.'<br />');
+                        $r->print($type.'<br />');
+            
+            foreach my $word (@choices) {
+                my $checked;
+                if ($Apache::lonpublisher::metadatafields{'coursekeyword'}=~ m/$word/) {
+                    $checked = 1;
+                } else {
+                    undef($checked);
+                }
+                $r->print(&Apache::lonhtmlcommon::checkbox('instmeta_'.$env{'form.metacourse'}.'_'.$item_num,$checked,$word).$word.'<br />');
+            }
         }
-        $r->print(&Apache::lonhtmlcommon::checkbox('keywords',$checked,$word).$word.'<br />');
-    }
+    }   
     $r->print('<br /><input type="submit" name="store" value="Assign Meta-data" />');
     $r->print('</form>');
     return 'ok';
@@ -1044,9 +1056,14 @@
             my $mfh;
             my $formname='store'; 
             my $file_content;
-            if (&Apache::loncommon::get_env_multiple('form.keywords')) {
-            $Apache::lonpublisher::metadatafields{'coursekeyword'} = 
+            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'));
+                }
             }
             foreach (sort keys %Apache::lonpublisher::metadatafields) {
                 next if ($_ =~ /\./);