Diff for /loncom/interface/lonclonecourse.pm between versions 1.12 and 1.14

version 1.12, 2016/01/21 00:12:38 version 1.14, 2020/06/01 20:35:02
Line 130  sub copyfile { Line 130  sub copyfile {
 # =============================================================== Copy a dbfile  # =============================================================== Copy a dbfile
   
 sub copydb {  sub copydb {
     my ($origcrsid,$newcrsid,$which)=@_;      my ($origcrsid,$newcrsid,$which,$newinstcode)=@_;
     $which=~s/\.db$//;      $which=~s/\.db$//;
     my %origcrsdata=&Apache::lonnet::coursedescription($origcrsid);      my %origcrsdata=&Apache::lonnet::coursedescription($origcrsid);
     my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid);      my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid);
Line 139  sub copydb { Line 139  sub copydb {
     foreach my $key (keys(%data)) {      foreach my $key (keys(%data)) {
  if ($key=~/^internal./) { delete($data{$key}); }   if ($key=~/^internal./) { delete($data{$key}); }
     }      }
       if ($which =~ /^exttool_\d+$/) {
           if ($origcrsdata{'description'} ne $newcrsdata{'description'}) {
               $data{'crstitle'} =~s/\Q$origcrsdata{'description'}\E/$newcrsdata{'description'}/;
           }
           if ($origcrsdata{'internal.coursecode'} ne $newinstcode) {
               $data{'crslabel'} =~ s/\Q$origcrsdata{'internal.coursecode'}\E/$newinstcode/;
           }
       }
     return &Apache::lonnet::put      return &Apache::lonnet::put
  ($which,\%data,$newcrsdata{'domain'},$newcrsdata{'num'});   ($which,\%data,$newcrsdata{'domain'},$newcrsdata{'num'});
 }  }
Line 220  sub copyresourcedb { Line 228  sub copyresourcedb {
                         if (($origtz eq 'local') && (!$ENV{TZ})) {                          if (($origtz eq 'local') && (!$ENV{TZ})) {
                             $ENV{TZ} = $dt->time_zone()->name();                              $ENV{TZ} = $dt->time_zone()->name();
                         }                          }
                         $dt->add(days => int($date_shift));                          eval {
                         $newdata{$thiskey} = $dt->epoch();                              $dt->add(days => int($date_shift));
                           };
                           if ($@) {
                               $newdata{$thiskey} = $newdata{$thiskey}+$delta+(60*60);
                           } else {
                               $newdata{$thiskey} = $dt->epoch();
                           }
                     } else {                      } else {
                         $newdata{$thiskey} = $newdata{$thiskey}+$delta;                          $newdata{$thiskey} = $newdata{$thiskey}+$delta;
                     }                      }
Line 249  sub copyuserfiles { Line 263  sub copyuserfiles {
 # ========================================================== Copy all userfiles  # ========================================================== Copy all userfiles
   
 sub copydbfiles {  sub copydbfiles {
     my ($origcrsid,$newcrsid)=@_;      my ($origcrsid,$newcrsid,$newinstcode)=@_;
   
     my ($origcrs_discussion) = ($origcrsid=~m|^/(.*)|);      my ($origcrs_discussion) = ($origcrsid=~m|^/(.*)|);
     $origcrs_discussion=~s|/|_|g;      $origcrs_discussion=~s|/|_|g;
Line 258  sub copydbfiles { Line 272  sub copydbfiles {
         unless ($_=~/^(nohist\_|disclikes|discussiontimes|classlist|versionupdate          unless ($_=~/^(nohist\_|disclikes|discussiontimes|classlist|versionupdate
                 |resourcedata|\Q$origcrs_discussion\E|slots|slot_reservations                  |resourcedata|\Q$origcrs_discussion\E|slots|slot_reservations
                 |gradingqueue|reviewqueue|CODEs|groupmembership|comm_block)/) {                  |gradingqueue|reviewqueue|CODEs|groupmembership|comm_block)/) {
             &copydb($origcrsid,$newcrsid,$_);              &copydb($origcrsid,$newcrsid,$_,$newinstcode);
         }          }
  }   }
     }      }
Line 267  sub copydbfiles { Line 281  sub copydbfiles {
 # ======================================================= Copy all course files  # ======================================================= Copy all course files
   
 sub copycoursefiles {  sub copycoursefiles {
     my ($origcrsid,$newcrsid,$date_mode,$date_shift)=@_;      my ($origcrsid,$newcrsid,$date_mode,$date_shift,$newinstcode)=@_;
     &copyuserfiles($origcrsid,$newcrsid);      &copyuserfiles($origcrsid,$newcrsid);
     &copydbfiles($origcrsid,$newcrsid);      &copydbfiles($origcrsid,$newcrsid,$newinstcode);
     &copyresourcedb($origcrsid,$newcrsid,$date_mode,$date_shift);      &copyresourcedb($origcrsid,$newcrsid,$date_mode,$date_shift);
 }  }
   

Removed from v.1.12  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>