diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 3ecd6750f..5e82ad2bc 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -4,6 +4,7 @@ - Clean up orphaned grouping - fix: purging old asset revisions on large sites never completes - fix: Can't add assets when not using preload.perl. + - fix: wiki recent - fix: graphing doesn't work with GraphicsMagick - fix: Calendar generated iCal for last 30 days instead of next 30 days - fix: hover help doesn't appear for matrix fields diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index 4d00f2e51..41b4961a3 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -40,12 +40,16 @@ sub appendRecentChanges { my $self = shift; my $var = shift; my $limit = shift || $self->get("recentChangesCount") || 50; - foreach my $asset (@{$self->getLineage(["children"], { - returnObjects => 1, - limit => $limit, - includeOnlyClasses =>["WebGUI::Asset::WikiPage"], - orderByClause => "assetData.revisionDate desc" - })}) { + my $revisions = $self->session->db->read("select asset.assetId, assetData.revisionDate, asset.className + from asset left join assetData using (assetId) where asset.parentId=? and asset.className + like ? order by assetData.revisionDate desc limit ?", [$self->getId, + "WebGUI::Asset::WikiPage%", $limit]); + while (my ($id, $version, $class) = $revisions->array) { + my $asset = WebGUI::Asset->new($self->session, $id, $class, $version); + unless (defined $asset) { + $self->session->errorHandler->error("Asset $id $class $version could not be instanciated."); + next; + } my $user = WebGUI::User->new($self->session, $asset->get("actionTakenBy")); my $specialAction = ''; my $isAvailable = 1;