Merge commit 'f2e0fb509a' into WebGUI8. Some tests still failing.
This commit is contained in:
commit
385931aaab
92 changed files with 1966 additions and 650 deletions
|
|
@ -585,8 +585,7 @@ sub getEventNext {
|
|||
'assetData.assetId',
|
||||
);
|
||||
|
||||
my $events = $self->getLineage(['siblings'], {
|
||||
#returnObjects => 1,
|
||||
my $events = $self->getLineageIterator(['siblings'], {
|
||||
includeOnlyClasses => ['WebGUI::Asset::Event'],
|
||||
joinClass => 'WebGUI::Asset::Event',
|
||||
orderByClause => join(",", @orderByColumns),
|
||||
|
|
@ -594,9 +593,12 @@ sub getEventNext {
|
|||
limit => 1,
|
||||
});
|
||||
|
||||
|
||||
return undef unless $events->[0];
|
||||
return WebGUI::Asset->newById($self->session,$events->[0]);
|
||||
my $nextEvent;
|
||||
eval { $nextEvent = $events->() };
|
||||
if ( WebGUI::Error->caught('WebGUI::Error::ObjecNotFound') ) {
|
||||
return undef; # Normal error
|
||||
}
|
||||
return $nextEvent;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -642,8 +644,7 @@ sub getEventPrev {
|
|||
'assetData.assetId DESC',
|
||||
);
|
||||
|
||||
my $events = $self->getLineage(['siblings'], {
|
||||
#returnObjects => 1,
|
||||
my $events = $self->getLineageIterator(['siblings'], {
|
||||
includeOnlyClasses => ['WebGUI::Asset::Event'],
|
||||
joinClass => 'WebGUI::Asset::Event',
|
||||
orderByClause => join(",",@orderByColumns),
|
||||
|
|
@ -651,8 +652,12 @@ sub getEventPrev {
|
|||
limit => 1,
|
||||
});
|
||||
|
||||
return undef unless $events->[0];
|
||||
return WebGUI::Asset->newById($self->session,$events->[0]);
|
||||
my $prevEvent;
|
||||
eval { $prevEvent = $events->() };
|
||||
if ( WebGUI::Error->caught( 'WebGUI::Error::ObjectNotFound' ) ) {
|
||||
return undef; # Normal error
|
||||
}
|
||||
return $prevEvent;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1490,35 +1495,46 @@ override processPropertiesFromFormPost => sub {
|
|||
|
||||
# Delete old events
|
||||
if ($old_id) {
|
||||
my $events = $self->getLineage(["siblings"], {
|
||||
returnObjects => 1,
|
||||
my $events = $self->getLineageIterator(["siblings"], {
|
||||
includeOnlyClasses => ['WebGUI::Asset::Event'],
|
||||
joinClass => 'WebGUI::Asset::Event',
|
||||
whereClause => qq{Event.recurId = "$old_id"},
|
||||
});
|
||||
$_->purge for @$events;
|
||||
while ( 1 ) {
|
||||
my $event;
|
||||
eval { $event = $events->() };
|
||||
if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) {
|
||||
$session->log->error(sprintf "Couldn't instance event asset %s to delete it", $x->id);
|
||||
next;
|
||||
}
|
||||
last unless $event;
|
||||
$event->purge;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
# TODO: Give users a form property to decide what events to update
|
||||
# TODO: Make a workflow activity to do this, so that updating
|
||||
# 1 million events doesn't kill the server.
|
||||
# TODO: Make this use WebGUI::ProgressBar so 1 million events doesn't kill the server.
|
||||
# Just update related events
|
||||
my %properties = %{ $self->get };
|
||||
delete $properties{startDate};
|
||||
delete $properties{endDate};
|
||||
delete $properties{url}; # addRevision will create a new url for us
|
||||
|
||||
my $events = $self->getLineage(["siblings"], {
|
||||
#returnObjects => 1,
|
||||
my $events = $self->getLineageIterator(["siblings"], {
|
||||
includeOnlyClasses => ['WebGUI::Asset::Event'],
|
||||
joinClass => 'WebGUI::Asset::Event',
|
||||
whereClause => q{Event.recurId = "}.$self->recurId.q{"},
|
||||
});
|
||||
|
||||
for my $eventId (@{$events}) {
|
||||
my $event = WebGUI::Asset->newById($session, $eventId);
|
||||
|
||||
while ( 1 ) {
|
||||
my $event;
|
||||
eval { $event = $events->() };
|
||||
if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) {
|
||||
$session->log->error(sprintf "Couldn't instance event asset %s to update it", $x->id);
|
||||
next;
|
||||
}
|
||||
last unless $event;
|
||||
# Add a revision
|
||||
$properties{ startDate } = $event->startDate;
|
||||
$properties{ endDate } = $event->endDate;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue