From 32b10e2914f072a76799efafe13ddcf1bac6df58 Mon Sep 17 00:00:00 2001 From: Drake Date: Fri, 10 Nov 2006 17:43:43 +0000 Subject: [PATCH] Okay, apparently it's a little more complex than that. Update to r3226. --- docs/upgrades/upgrade_7.1.3-7.2.0.pl | 32 ++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/docs/upgrades/upgrade_7.1.3-7.2.0.pl b/docs/upgrades/upgrade_7.1.3-7.2.0.pl index 51e706318..1b9c25d0e 100644 --- a/docs/upgrades/upgrade_7.1.3-7.2.0.pl +++ b/docs/upgrades/upgrade_7.1.3-7.2.0.pl @@ -175,17 +175,16 @@ EOT ); my $oldTag = WebGUI::VersionTag->getWorking($session, 0); - my $templateTag = WebGUI::VersionTag->create($session, { name => '7.2.0 RSS template update' }); - $templateTag->setWorking; - foreach my $templateId ($session->db->buildArray("SELECT DISTINCT assetId FROM template WHERE namespace = 'Collaboration/RSS'")) { - my ($revisionDate) = $session->db->quickArray("SELECT MAX(revisionDate) FROM template WHERE assetId = ?", [$templateId]); - my $template = WebGUI::Asset->newByDynamicClass($session, $templateId, $revisionDate); - $template->update({ namespace => 'RSSCapable/RSS' }); - } + + $session->db->write($_) for (<<'EOT', + UPDATE template + SET namespace = 'RSSCapable/RSS' + WHERE namespace = 'Collaboration/RSS' +EOT + ); WebGUI::Asset->newByDynamicClass($session, 'PBtmpl0000000000000142') ->update({ title => 'Default RSS', menuTitle => 'Default RSS' }); - $templateTag->commit; # Need to get the Collaborations, since those now have RSS capability. $session->db->write($_) for (<<'EOT', @@ -206,8 +205,23 @@ EOT # Blah, some duplication with RSSCapable.pm. my ($revisionDate) = $session->db->quickArray("SELECT MAX(revisionDate) FROM Collaboration WHERE assetId = ?", [$csId]); my $cs = WebGUI::Asset->newByDynamicClass($session, $csId, $revisionDate); - if ($cs->isPrototype) { + if ($cs->isPrototype or $cs->get('status') ne 'published') { $cs->update({ rssCapableRssEnabled => 1, rssCapableRssFromParentId => undef }); + if (!$cs->isPrototype) { + # Update the most recent published one too. + my $csp = WebGUI::Asset->newByDynamicClass($session, $csId); + if ($csp) { + # Duplication with below. x.o + my $rssFromParent = + $csp->addChild({ className => 'WebGUI::Asset::RSSFromParent', + title => $csp->get('title'), + menuTitle => $csp->get('menuTitle'), + url => $csp->get('url').'.rss' + }); + $csp->update({ rssCapableRssEnabled => 1, + rssCapableRssFromParentId => $rssFromParent->getId }); + } + } } else { my $rssFromParent = $cs->addChild({ className => 'WebGUI::Asset::RSSFromParent',