Diff for /loncom/interface/lonclonecourse.pm between versions 1.5 and 1.6

version 1.5, 2008/01/21 17:47:21 version 1.6, 2008/01/22 22:37:18
Line 141  sub copydb { Line 141  sub copydb {
 # ========================================================== Copy resourcesdata  # ========================================================== Copy resourcesdata
   
 sub copyresourcedb {  sub copyresourcedb {
     my ($origcrsid,$newcrsid)=@_;      my ($origcrsid,$newcrsid,$date_mode,$date_shift)=@_;
       my $delta=$date_shift*60*60*24;
     my %origcrsdata=&Apache::lonnet::coursedescription($origcrsid);      my %origcrsdata=&Apache::lonnet::coursedescription($origcrsid);
     my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid);      my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid);
     my %data=&Apache::lonnet::dump      my %data=&Apache::lonnet::dump
Line 162  sub copyresourcedb { Line 163  sub copyresourcedb {
  $startdate = $start{'default_enrollment_start_date'};   $startdate = $start{'default_enrollment_start_date'};
     }      }
 # ugly retro fix for broken version of types  # ugly retro fix for broken version of types
     foreach (keys %data) {      foreach my $key (keys %data) {
  if ($_=~/\wtype$/) {   if ($key=~/\wtype$/) {
     my $newkey=$_;      my $newkey=$key;
     $newkey=~s/type$/\.type/;      $newkey=~s/type$/\.type/;
     $data{$newkey}=$data{$_};      $data{$newkey}=$data{$key};
     delete $data{$_};      delete $data{$key};
  }   }
     }      }
 # adjust symbs  # adjust symbs
     my $pattern='uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/';      my $pattern='uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/';
     my $new=    'uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/';      my $new=    'uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/';
     foreach (keys %data) {      foreach my $key (keys %data) {
  if ($_=~/\Q$pattern\E/) {   if ($key=~/\Q$pattern\E/) {
     my $newkey=$_;      my $newkey=$key;
     $newkey=~s/\Q$pattern\E/$new/;      $newkey=~s/\Q$pattern\E/$new/;
     $data{$newkey}=$data{$_};      $data{$newkey}=$data{$key};
     delete $data{$_};      delete $data{$key};
    }
       }
   #  transfer hash
       foreach my $key (keys %data) {
    my $thiskey=$key;
    $thiskey=~s/^$origcrsid/$newcrsid/;
    $newdata{$thiskey}=$data{$key};
   # date_mode empty or "preserve": transfer dates one-to-one
   # date_mode "shift": shift dates by date_shift days
   # date_mode other: do not transfer dates
           if (($date_mode) && ($date_mode ne 'preserve')) {
       if ($data{$key.'.type'}=~/^date_(start|end)$/) {
          if ($date_mode eq 'shift') {
     $newdata{$thiskey}=$newdata{$thiskey}+$delta;
          } else {
     delete($newdata{$thiskey});
     delete($newdata{$thiskey.'.type'});
          }
               }
  }   }
     }      }
     return &Apache::lonnet::put      return &Apache::lonnet::put
Line 215  sub copydbfiles { Line 235  sub copydbfiles {
 # ======================================================= Copy all course files  # ======================================================= Copy all course files
   
 sub copycoursefiles {  sub copycoursefiles {
     my ($origcrsid,$newcrsid)=@_;      my ($origcrsid,$newcrsid,$date_mode,$date_shift)=@_;
     &copyuserfiles($origcrsid,$newcrsid);      &copyuserfiles($origcrsid,$newcrsid);
     &copydbfiles($origcrsid,$newcrsid);      &copydbfiles($origcrsid,$newcrsid);
     &copyresourcedb($origcrsid,$newcrsid);      &copyresourcedb($origcrsid,$newcrsid,$date_mode,$date_shift);
 }  }
   
 1;  1;

Removed from v.1.5  
changed lines
  Added in v.1.6


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