version 1.33, 2003/09/03 21:24:32
|
version 1.35, 2003/09/03 23:15:27
|
Line 118 sub copydb {
|
Line 118 sub copydb {
|
($which,\%data,$newcrsdata{'domain'},$newcrsdata{'num'}); |
($which,\%data,$newcrsdata{'domain'},$newcrsdata{'num'}); |
} |
} |
|
|
|
# ========================================================== Copy resourcesdata |
|
|
|
sub copyresourcedb { |
|
my ($origcrsid,$newcrsid)=@_; |
|
my %origcrsdata=&Apache::lonnet::coursedescription($origcrsid); |
|
my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid); |
|
my %data=&Apache::lonnet::dump |
|
('resourcedata',$origcrsdata{'domain'},$origcrsdata{'num'}); |
|
$origcrsid=~s/^\///; |
|
$origcrsid=~s/\//\_/; |
|
$newcrsid=~s/^\///; |
|
$newcrsid=~s/\//\_/; |
|
my %newdata=(); |
|
undef %newdata; |
|
my $startdate=$data{$origcrsid.'.0.opendate'}; |
|
my $today=time; |
|
my $delta=0; |
|
if ($startdate) { |
|
my $oneday=60*60*24; |
|
$delta=$today-$startdate; |
|
$delta=int($delta/$oneday)*$oneday; |
|
} |
|
# ugly retro fix for broken version of types |
|
foreach (keys %data) { |
|
if ($_=~/\wtype$/) { |
|
my $newkey=$_; |
|
$newkey=~s/type$/\.type/; |
|
$data{$newkey}=$data{$_}; |
|
delete $data{$_}; |
|
} |
|
} |
|
# adjust dates |
|
foreach (keys %data) { |
|
my $thiskey=$_; |
|
$thiskey=~s/^$origcrsid/$newcrsid/; |
|
$newdata{$thiskey}=$data{$_}; |
|
if ($data{$_.'.type'}=~/^date/) { |
|
$newdata{$thiskey}=$newdata{$thiskey}+$delta; |
|
} |
|
} |
|
return &Apache::lonnet::put |
|
('resourcedata',\%newdata,$newcrsdata{'domain'},$newcrsdata{'num'}); |
|
} |
|
|
# ========================================================== Copy all userfiles |
# ========================================================== Copy all userfiles |
|
|
sub copyuserfiles { |
sub copyuserfiles { |
Line 133 sub copydbfiles {
|
Line 177 sub copydbfiles {
|
foreach (&crsdirlist($origcrsid)) { |
foreach (&crsdirlist($origcrsid)) { |
if ($_=~/\.db$/) { |
if ($_=~/\.db$/) { |
unless |
unless |
($_=~/^(nohist\_|discussiontimes|classlist|versionupdate)/) { |
($_=~/^(nohist\_|discussiontimes|classlist|versionupdate|resourcedata)/) { |
©db($origcrsid,$newcrsid,$_); |
©db($origcrsid,$newcrsid,$_); |
} |
} |
} |
} |
Line 146 sub copycoursefiles {
|
Line 190 sub copycoursefiles {
|
my ($origcrsid,$newcrsid)=@_; |
my ($origcrsid,$newcrsid)=@_; |
©userfiles($origcrsid,$newcrsid); |
©userfiles($origcrsid,$newcrsid); |
©dbfiles($origcrsid,$newcrsid); |
©dbfiles($origcrsid,$newcrsid); |
|
©resourcedb($origcrsid,$newcrsid); |
} |
} |
|
|
# ===================================================== Phase one: fill-in form |
# ===================================================== Phase one: fill-in form |
Line 354 ENDENHEAD
|
Line 399 ENDENHEAD
|
©coursefiles($cloneid,$courseid); |
©coursefiles($cloneid,$courseid); |
# Restore title |
# Restore title |
$cenv{'description'}=$cdescr; |
$cenv{'description'}=$cdescr; |
|
$cenv{'clonedfrom'}=$cloneid; |
} |
} |
} |
} |
# |
# |