diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 94269c144..a4a5724e9 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,3 +1,8 @@ +7.3.17 + - fix: First event in the calendar not working right (Martin Kamerbeek / Oqapi) + http://www.plainblack.com/bugs/tracker/first-event-in-the-calendar-not-working-right + + 7.3.16 - fix: Wiki titles not automatically linked - fix: Search indexer on Windows not indexing content, opening associated diff --git a/lib/WebGUI/Asset/Wobject/Calendar.pm b/lib/WebGUI/Asset/Wobject/Calendar.pm index 4a4286d07..0a6a61ae9 100644 --- a/lib/WebGUI/Asset/Wobject/Calendar.pm +++ b/lib/WebGUI/Asset/Wobject/Calendar.pm @@ -574,6 +574,7 @@ sub getEvent { $self->session->errorHandler->warn("WebGUI::Asset::Wobject::Calendar->getEvent :: Event '$assetId' not a child of calendar '".$self->getId."'"), return unless $event->get("parentId") eq $self->getId; + return $event; } @@ -724,20 +725,18 @@ Gets the first event in this calendar. Returns the Event object. =cut sub getFirstEvent { - my $self = shift; - my $lineage = $self->get("lineage"); - - my ($assetId) = $self->session->db->quickArray(<getEvent($assetId); + my $self = shift; + + my $eventAsset = $self->getLineage(['children'], { + includeOnlyClasses => ['WebGUI::Asset::Event'], + joinClass => 'WebGUI::Asset::Event', + whereClause => 'Event.startDate >= date( now() )', + orderByClause => 'Event.startdate asc, Event.startTime asc, revisionDate desc', + limit => 1, + returnObjects => 1, + })->[0]; + + return $eventAsset; }