Migrate calendars seems to work. Uncomment appropriate lines in upgrade_7.2.3-7.3.0.pl to test. If you get it working, commit the uncommented lines please.

This commit is contained in:
Doug Bell 2006-12-02 18:19:51 +00:00
parent 5b29b0dfcb
commit 8da3e259a0

View file

@ -226,35 +226,32 @@ sub migrateCalendars {
{
my $properties = {%{$asset->get}};
$properties->{defaultDate} = delete $properties->{defaultMonth};
warn "Found calendar ".$properties->{title};
#warn "Found calendar ".$properties->{title};
$properties->{className} = "WebGUI::Asset::Wobject::Calendar";
# Add the new asset
my $newAsset = $asset->getParent->addChild($properties);
warn "Added Calendar ".$newAsset->get("title")." ".$newAsset->get("className");
#warn "Added Calendar ".$newAsset->get("title")." ".$newAsset->get("className");
# Get this calendar's events and change to new parent
my $events = $asset->getLineage(['descendants'],
{
includeOnlyClasses => ['WebGUI::Asset::Event'],
});
warn "Got lineage";
# Set the new asset's rank
$newAsset->swapRank($asset->getRank);
warn "Swapped rank";
#warn "Got lineage";
for my $event (@{$events})
{
warn "Got event: $event";
#warn "Got event: $event";
# Add a child to the new calendar using the properties
# from EventsCalendar_event
my %eventProperties = $session->db->quickHash("select * from asset left join assetData on asset.assetId=assetData.assetId left join EventsCalendar_event on asset.assetId = EventsCalendar_event.assetId where asset.assetId = ?",[$event]);
delete $eventProperties{assetId};
my ($startDate, $startTime) = split / /, WebGUI::DateTime->new(delete $eventProperties{eventStartDate})->toMysql;
my ($endDate, $endTime) = split / /, WebGUI::DateTime->new(delete $eventProperties{eventEndDate})->toMysql;
@ -268,18 +265,18 @@ sub migrateCalendars {
$newAsset->addChild(\%eventProperties);
# Remove this event from the old calendar
#$session->db->write("delete from EventsCalendar_event where assetId=?",[$event]);
#$session->db->write("delete from asset where assetId=?",[$event]);
#$session->db->write("delete from assetData where assetId=?",[$event]);
#$session->db->write("delete from assetIndex where assetId=?",[$event]);
#$session->db->write("delete from assetHistory where assetId=?",[$event]);
$session->db->write("delete from EventsCalendar_event where assetId=?",[$event]);
$session->db->write("delete from asset where assetId=?",[$event]);
$session->db->write("delete from assetData where assetId=?",[$event]);
$session->db->write("delete from assetIndex where assetId=?",[$event]);
$session->db->write("delete from assetHistory where assetId=?",[$event]);
}
warn "Set parents on events";
#warn "Set parents on events";
# Remove the old asset
$asset->purge;
warn "Purged old calendar";
#warn "Purged old calendar";
}
}