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

raeburn raeburn at source.lon-capa.org
Mon Jan 6 20:25:58 EST 2025


raeburn		Tue Jan  7 01:25:58 2025 EDT

  Modified files:              
    /loncom/interface	londocs.pm 
  Log:
  - Copying files from Course Authoring Space to User's Authoring Space.
    Store information in a copycourseauthor.db file in course's data directory
    about who/where files were copied, and whether files in /res were copied.
  
  
Index: loncom/interface/londocs.pm
diff -u loncom/interface/londocs.pm:1.718 loncom/interface/londocs.pm:1.719
--- loncom/interface/londocs.pm:1.718	Sat Jan  4 21:16:45 2025
+++ loncom/interface/londocs.pm	Tue Jan  7 01:25:57 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.718 2025/01/04 21:16:45 raeburn Exp $
+# $Id: londocs.pm,v 1.719 2025/01/07 01:25:57 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -884,7 +884,7 @@
         if (keys(%tocopy)) {
             my (%resdirs,%resfiles);
             &Apache::lonnet::recursedirs($is_course_home,1,undef,$res_exclude,0,0,$resurl,'',\%resdirs,\%resfiles);
-            my ($notopdir,%newdir,%newfile,%checkdeps);
+            my ($notopdir,%newdir,%newfile,%checkdeps,%newresfile);
             $r->print('<p>'.&mt('Copy to: [_1]',
                                 '<span class="LC_filename">'.$desturl.'/'.$subdir.'</span>').
                       '</p>'."\n");
@@ -1026,7 +1026,7 @@
                                             }
                                         } else {
                                             if (&File::Copy::copy($src,$dest)) {
-                                                $newfile{$file} = 1;
+                                                $newfile{$file} = $desturl.'/'.$subdir.'/'.$file;
                                                 if ($embstyle eq 'ssi') {
                                                     &crsres_fixup($dest,$coursenum,$coursedom,$ca,$cd,$subdir);
                                                 }
@@ -1055,6 +1055,9 @@
                                         my $destresfile = $docroot.$destresurl.'/'.$subdir.'/'.$file;
                                         if (-e $dest) {
                                             my $output = &Apache::lonpublisher::batchpublish($r,$dest,$destresfile,$nokeyref,1);
+                                            if (-e $destresfile) {
+                                                $newresfile{$file} = $destresurl.'/'.$subdir.'/'.$file;
+                                            }
                                         }
                                     }
                                 } else {
@@ -1065,7 +1068,7 @@
                                 }
                                 if ($needpriv) {
                                     if (&File::Copy::copy($src,$dest)) {
-                                        $newfile{$file} = 1;
+                                        $newfile{$file} = $desturl.'/'.$subdir.'/'.$file;
                                         if ($embstyle eq 'ssi') {
                                             &crsres_fixup($dest,$coursenum,$coursedom,$ca,$cd,$subdir);
                                         }
@@ -1099,7 +1102,7 @@
                                                 if ($embstyle eq 'ssi') {
                                                     &crsres_fixup($dest,$coursenum,$coursedom,$ca,$cd,$subdir);
                                                 }
-                                                $newfile{$file} = 1;
+                                                $newfile{$file} = $desturl.'/'.$subdir.'/'.$file;
                                             }
                                         }
                                     } else {
@@ -1127,6 +1130,9 @@
                                         my $destresfile = $docroot.$destresurl.'/'.$subdir.'/'.$file;
                                         if (-e $dest) {
                                             my $output = &Apache::lonpublisher::batchpublish($r,$dest,$destresfile,$nokeyref,1);
+                                            if (-e $destresfile) {
+                                                $newresfile{$file} = $destresurl.'/'.$subdir.'/'.$file;
+                                            }
                                         }
                                     }
                                 } else {
@@ -1140,7 +1146,7 @@
                                         if ($embstyle eq 'ssi') {
                                             &crsres_fixup($dest,$coursenum,$coursedom,$ca,$cd,$subdir);
                                         }
-                                        $newfile{$file} = 1;
+                                        $newfile{$file} = $desturl.'/'.$subdir.'/'.$file;
                                     }
                                 }
                                 if ($needprivmeta) {
@@ -1171,6 +1177,16 @@
                 $r->print('<p>'.&mt('Copied the following files to [_1]:','<span class="LC_filename">'.$desturl.'/'.$subdir.'</span>').
                           '</p>'."\n".
                           '<ul><li>'.join('</li><li>',sort(keys(%newfile))).'</li></ul></p>'."\n");
+                foreach my $key (keys(%newfile)) {
+                    my %storehash = ( 
+                                      'priv' => $newfile{$key},
+                                      'who'  => $env{'user.name'}.':'.$env{'user.domain'},
+                                    );
+                    if (exists($newresfile{$file})) {
+                        $storehash{'res'} = 1;
+                    }
+                    &Apache::lonnet::store_userdata(\%storehash,$file,'copycourseauthor',$coursedom,$coursenum);
+                }
             }
             if (keys(%checkdeps)) {
                 my %missingdep;




More information about the LON-CAPA-cvs mailing list