products/CPSRSS

changeset 234:483df375f3a1

Testing the explicit refresh method
author Georges Racinet on purity.racinet.fr <georges@racinet.fr>
date Sun, 05 Dec 2010 02:03:34 +0100
parents b1836f263b12
children 46f0fc29b4e8
files tests/testRSS.py tests/trac_cps.rss
diffstat 2 files changed, 382 insertions(+), 2 deletions(-) [+]
line diff
     1.1 --- a/tests/testRSS.py
     1.2 +++ b/tests/testRSS.py
     1.3 @@ -35,10 +35,13 @@
     1.4  
     1.5          rss_tool.manage_addRSSChannel('channel', get_feed_url('zope.rss'))
     1.6          self.assertEquals(rss_tool.objectIds(), ['channel'])
     1.7 -        d = rss_tool.channel.getData()
     1.8 +        channel = rss_tool.channel
     1.9 +
    1.10 +        d = channel.getData()
    1.11          self.assertEquals(d['url'], 'http://zope.org')
    1.12          self.assertEquals(d['title'], 'Zope.org')
    1.13          self.assertEquals(d['description'], '')
    1.14 +        return channel
    1.15  
    1.16      def _testLocalChannel(self, lazy_refresh=0):
    1.17          rss_tool = self.tool
    1.18 @@ -47,10 +50,13 @@
    1.19          container = self.localContainer()
    1.20          container.manage_addRSSChannel('channel', get_feed_url('zope.rss'))
    1.21          self.assertEquals(container.objectIds(), ['channel'])
    1.22 -        d = container.channel.getData()
    1.23 +        channel = container.channel
    1.24 +
    1.25 +        d = channel.getData()
    1.26          self.assertEquals(d['url'], 'http://zope.org')
    1.27          self.assertEquals(d['title'], 'Zope.org')
    1.28          self.assertEquals(d['description'], '')
    1.29 +        return container, channel
    1.30  
    1.31      def testChannelLazy(self):
    1.32          self._testChannel(lazy_refresh=1)
    1.33 @@ -64,6 +70,18 @@
    1.34      def testLocalChannelNotLazy(self):
    1.35          self._testLocalChannel(lazy_refresh=0)
    1.36  
    1.37 +    def testExplicitRefresh(self):
    1.38 +        # this should eventually move to RSSChannelContainer tests
    1.39 +        self.tool.refresh_delay = 30
    1.40 +        # creating and filling the channel (TODO refactor)
    1.41 +        container, channel = self._testLocalChannel(lazy_refresh=1)
    1.42 +        channel.channel_url = get_feed_url('trac_cps.rss')
    1.43 +        # check that we'll actually test somethin
    1.44 +        self.assertEquals(channel.getData()['title'], 'Zope.org')
    1.45 +        container.refresh()
    1.46 +        self.assertEquals(channel.getData()['title'], 'CPS CMS: Ticket Query')
    1.47 +
    1.48 +
    1.49  class CPSTestRSS(TestRSS, CPSRSSTestCase):
    1.50      """Run the tests in a full CPS portal context."""
    1.51  
    1.52 @@ -78,6 +96,7 @@
    1.53          self.folder._setObject('subfold', Folder('subfold'))
    1.54          return self._localContainer(self.folder.subfold)
    1.55  
    1.56 +
    1.57  def test_suite():
    1.58      suites = [unittest.makeSuite(cls) for cls in (ZopeTestRSS, CPSTestRSS)]
    1.59      return unittest.TestSuite(suites)
     2.1 new file mode 100644
     2.2 --- /dev/null
     2.3 +++ b/tests/trac_cps.rss
     2.4 @@ -0,0 +1,361 @@
     2.5 +<?xml version="1.0"?>
     2.6 +<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
     2.7 +  
     2.8 +
     2.9 +  <channel>
    2.10 +    <title>CPS CMS: Ticket Query</title>
    2.11 +    <link>http://trac.cps-cms.org/query?status=closed&amp;group=status&amp;milestone=CPS+3.5.2&amp;row=description</link>
    2.12 +    <description>Collaborative Portal System CMS</description>
    2.13 +    <language>en-US</language>
    2.14 +    <image>
    2.15 +      <title>CPS CMS</title>
    2.16 +      <url>http://trac.cps-cms.org/chrome/site/logo_cps.png</url>
    2.17 +      <link>http://trac.cps-cms.org/query?status=closed&amp;group=status&amp;milestone=CPS+3.5.2&amp;row=description</link>
    2.18 +    </image>
    2.19 +    <generator>Trac 0.11.1</generator>
    2.20 +    <item>
    2.21 +        <link>http://trac.cps-cms.org/ticket/2184</link>
    2.22 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2184</guid>
    2.23 +        <title>#2184: Make a unicode upgrade cpsjob</title>
    2.24 +        <pubDate>Thu, 29 Jul 2010 13:53:41 GMT</pubDate>
    2.25 +          <dc:creator>gracinet</dc:creator>
    2.26 +        <description>&lt;p&gt;
    2.27 +Having upgrade steps is nice, but not enough:
    2.28 +&lt;/p&gt;
    2.29 +&lt;ul&gt;&lt;li&gt;the whole upgrade process
    2.30 +&lt;/li&gt;&lt;li&gt;the upgrade can be long, people will need to invoke it from server console, behind any corporate proxy
    2.31 +&lt;/li&gt;&lt;li&gt;some treatment can be factorized among steps (crawling the folder hierarchy, see &lt;a class="closed ticket" href="http://trac.cps-cms.org/ticket/2183" title="defect: Unicode upgrades should not depend on the catalog (closed: fixed)"&gt;#2183&lt;/a&gt;)
    2.32 +&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
    2.33 +Unicode upgrade steps will be kept, though, so that people can relaunch one independently from the big thing.
    2.34 +&lt;/p&gt;
    2.35 +&lt;p&gt;
    2.36 +In my mind, the upgrade process needs not to be so polished for 3.5.1, but that'd be welcomed, of course
    2.37 +&lt;/p&gt;
    2.38 +</description>
    2.39 +        <category>Results</category>
    2.40 +        <comments>http://trac.cps-cms.org/ticket/2184#changelog</comments>
    2.41 +    </item><item>
    2.42 +        <link>http://trac.cps-cms.org/ticket/2223</link>
    2.43 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2223</guid>
    2.44 +        <title>#2223: Allow unicode labels in widgets and vocabularies</title>
    2.45 +        <pubDate>Fri, 20 Aug 2010 01:37:18 GMT</pubDate>
    2.46 +          <dc:creator>gracinet</dc:creator>
    2.47 +        <description>&lt;p&gt;
    2.48 +Because of the previous limitations, widgets labels and help messages are always plain strings. An additional boolean property &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;is_i18n&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt;
    2.49 +controls whether this to be considered as a label for the translation service.
    2.50 +&lt;/p&gt;
    2.51 +&lt;p&gt;
    2.52 +In practice, working for a french-only installation therefore means going through the cumbersome &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;.pot&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; and &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;.po&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; files for each label with non ascii characters, which is rather absurd and an terrible waste of developer's time and focus.
    2.53 +&lt;/p&gt;
    2.54 +&lt;p&gt;
    2.55 +Marking this as feature, because it will indeed be a relief.
    2.56 +&lt;/p&gt;
    2.57 +&lt;p&gt;
    2.58 +This could be done my making &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;label&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; and friends &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;ustring&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; properties and having auxiliaray &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;label_msgid&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; etc, but a compatibility layer will then be needed to avoid the cumbersome task of migrating the old profiles.
    2.59 +&lt;/p&gt;
    2.60 +&lt;p&gt;
    2.61 +Same remarks apply to vocabulary, but it will be easier for them since they already have different labels properties.
    2.62 +&lt;/p&gt;
    2.63 +</description>
    2.64 +        <category>Results</category>
    2.65 +        <comments>http://trac.cps-cms.org/ticket/2223#changelog</comments>
    2.66 +    </item><item>
    2.67 +        <link>http://trac.cps-cms.org/ticket/1615</link>
    2.68 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/1615</guid>
    2.69 +        <title>#1615: change widgets defaults</title>
    2.70 +        <pubDate>Fri, 14 Apr 2006 13:32:47 GMT</pubDate>
    2.71 +          <dc:creator>tziade</dc:creator>
    2.72 +        <description>&lt;p&gt;
    2.73 +- activate "Text WIdget"
    2.74 +- remove "Rich Text widget"
    2.75 +&lt;/p&gt;
    2.76 +</description>
    2.77 +        <category>Results</category>
    2.78 +        <comments>http://trac.cps-cms.org/ticket/1615#changelog</comments>
    2.79 +    </item><item>
    2.80 +        <link>http://trac.cps-cms.org/ticket/2074</link>
    2.81 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2074</guid>
    2.82 +        <title>#2074: Split navigation portlet render method</title>
    2.83 +        <pubDate>Sun, 29 Nov 2009 13:22:10 GMT</pubDate>
    2.84 +          <dc:creator>gracinet</dc:creator>
    2.85 +        <description>&lt;p&gt;
    2.86 +Currently, all the different rendering types for navigation portlets are being handled by a single ZPT file. This is a customization and maintainance nightmare.
    2.87 +&lt;/p&gt;
    2.88 +&lt;p&gt;
    2.89 +To avoid making a dozen new portlet types, there should be a simple logic assigning a rendering type to its ZPT file. I would support a simple automatic file name convention, like the one for layout modes.
    2.90 +&lt;/p&gt;
    2.91 +&lt;p&gt;
    2.92 +This could very well be done at the level of the generic portlet widget, declaring the field that triggers this, if any, in a property, and therefore apply to other portlet types.
    2.93 +&lt;/p&gt;
    2.94 +&lt;p&gt;
    2.95 +Not at all suited for 3.4, of course
    2.96 +&lt;/p&gt;
    2.97 +</description>
    2.98 +        <category>Results</category>
    2.99 +        <comments>http://trac.cps-cms.org/ticket/2074#changelog</comments>
   2.100 +    </item><item>
   2.101 +        <link>http://trac.cps-cms.org/ticket/2118</link>
   2.102 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2118</guid>
   2.103 +        <title>#2118: Image and Photo widget available sizes</title>
   2.104 +        <pubDate>Mon, 22 Feb 2010 12:11:38 GMT</pubDate>
   2.105 +          <dc:creator>gracinet</dc:creator>
   2.106 +        <description>&lt;p&gt;
   2.107 +The available image sizes for the resize operation are filtered to be smaller than the display size (width&amp;amp;height actually) in the widget props.
   2.108 +&lt;/p&gt;
   2.109 +&lt;p&gt;
   2.110 +The filtering criterion should be smaller 'or equal' : it's unlogical to specify 641x480 in the widget props to get the 640x480 option in the available sizes.
   2.111 +&lt;/p&gt;
   2.112 +</description>
   2.113 +        <category>Results</category>
   2.114 +        <comments>http://trac.cps-cms.org/ticket/2118#changelog</comments>
   2.115 +    </item><item>
   2.116 +        <link>http://trac.cps-cms.org/ticket/2210</link>
   2.117 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2210</guid>
   2.118 +        <title>#2210: Tramline Image</title>
   2.119 +        <pubDate>Sun, 15 Aug 2010 16:16:36 GMT</pubDate>
   2.120 +          <dc:creator>gracinet</dc:creator>
   2.121 +        <description>&lt;p&gt;
   2.122 +As shown in &lt;a class="reopened ticket" href="http://trac.cps-cms.org/ticket/2205" title="feature: Generic batch or archive upload system (reopened)"&gt;#2205&lt;/a&gt;, it's time to have Tramline images.
   2.123 +&lt;/p&gt;
   2.124 +</description>
   2.125 +        <category>Results</category>
   2.126 +        <comments>http://trac.cps-cms.org/ticket/2210#changelog</comments>
   2.127 +    </item><item>
   2.128 +        <link>http://trac.cps-cms.org/ticket/2222</link>
   2.129 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2222</guid>
   2.130 +        <title>#2222: Provide a progress bar for long uploads</title>
   2.131 +        <pubDate>Fri, 20 Aug 2010 01:16:35 GMT</pubDate>
   2.132 +          <dc:creator>gracinet</dc:creator>
   2.133 +        <description>&lt;p&gt;
   2.134 +CPSTramline allows to update hundreds of megabytes to a CPS installation. This is neat, but a progress bar is a must have.
   2.135 +&lt;/p&gt;
   2.136 +</description>
   2.137 +        <category>Results</category>
   2.138 +        <comments>http://trac.cps-cms.org/ticket/2222#changelog</comments>
   2.139 +    </item><item>
   2.140 +        <link>http://trac.cps-cms.org/ticket/2242</link>
   2.141 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2242</guid>
   2.142 +        <title>#2242: Explicitensess in password reset timeouts</title>
   2.143 +        <pubDate>Sat, 02 Oct 2010 16:28:29 GMT</pubDate>
   2.144 +          <dc:creator>gracinet</dc:creator>
   2.145 +        <description>&lt;p&gt;
   2.146 +This is what remains of &lt;a class="closed ticket" href="http://trac.cps-cms.org/ticket/2230" title="enhancement: Improve usability of the reset password functionality (closed: fixed)"&gt;#2230&lt;/a&gt;:
   2.147 +reset request timed-out validity should be explicitly announced as such to users
   2.148 +&lt;/p&gt;
   2.149 +&lt;p&gt;
   2.150 +One should modify &lt;a class="missing wiki" href="http://trac.cps-cms.org/wiki/MembershipTool" rel="nofollow"&gt;MembershipTool?&lt;/a&gt;.isPasswordResetRequestValid to not only return True or False but why it is False, ie is it a validity error of the token or is it a timed-out error.
   2.151 +&lt;/p&gt;
   2.152 +</description>
   2.153 +        <category>Results</category>
   2.154 +        <comments>http://trac.cps-cms.org/ticket/2242#changelog</comments>
   2.155 +    </item><item>
   2.156 +        <link>http://trac.cps-cms.org/ticket/2244</link>
   2.157 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2244</guid>
   2.158 +        <title>#2244: Allow CSV export of booleans in directories</title>
   2.159 +        <pubDate>Tue, 05 Oct 2010 13:38:10 GMT</pubDate>
   2.160 +          <dc:creator>gracinet</dc:creator>
   2.161 +        <description>&lt;p&gt;
   2.162 +Currently, only String and String List fields are being exported, but some people really need the boolean ones, too (for various treatments like sortin in their favorite spreadsheet application).
   2.163 +&lt;/p&gt;
   2.164 +&lt;p&gt;
   2.165 +Most users would like localized labels in the export itself, we should reuse the same vocabulary as in the Boolean Widget itself.
   2.166 +&lt;/p&gt;
   2.167 +</description>
   2.168 +        <category>Results</category>
   2.169 +        <comments>http://trac.cps-cms.org/ticket/2244#changelog</comments>
   2.170 +    </item><item>
   2.171 +        <link>http://trac.cps-cms.org/ticket/2245</link>
   2.172 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2245</guid>
   2.173 +        <title>#2245: Upgrade step document to be flexible is broken</title>
   2.174 +        <pubDate>Wed, 06 Oct 2010 11:17:05 GMT</pubDate>
   2.175 +          <dc:creator>gracinet</dc:creator>
   2.176 +        <description>&lt;p&gt;
   2.177 +The reason is that it goes through the CPSDocument API, which evaluates expressions. In particular, the contributors list is updated with the current user fullname, which is unicode. Since typically the step is launched before the unicode upgrade, we have an error each time the previous contributors list has a non ascci character.
   2.178 +&lt;/p&gt;
   2.179 +</description>
   2.180 +        <category>Results</category>
   2.181 +        <comments>http://trac.cps-cms.org/ticket/2245#changelog</comments>
   2.182 +    </item><item>
   2.183 +        <link>http://trac.cps-cms.org/ticket/2247</link>
   2.184 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2247</guid>
   2.185 +        <title>#2247: ZODB directory unicode upgrade fails over 99 entries</title>
   2.186 +        <pubDate>Wed, 06 Oct 2010 13:09:33 GMT</pubDate>
   2.187 +          <dc:creator>gracinet</dc:creator>
   2.188 +        <description>&lt;p&gt;
   2.189 +Missing import for the explicit transaction commit that occurs every 100 entries…
   2.190 +&lt;/p&gt;
   2.191 +</description>
   2.192 +        <category>Results</category>
   2.193 +        <comments>http://trac.cps-cms.org/ticket/2247#changelog</comments>
   2.194 +    </item><item>
   2.195 +        <link>http://trac.cps-cms.org/ticket/2248</link>
   2.196 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2248</guid>
   2.197 +        <title>#2248: Datamodel unicode upgrade not robust enough</title>
   2.198 +        <pubDate>Wed, 06 Oct 2010 13:11:49 GMT</pubDate>
   2.199 +          <dc:creator>gracinet</dc:creator>
   2.200 +        <description>&lt;p&gt;
   2.201 +There is an exotic case where write access is denied.
   2.202 +Unfortunately, the exception catching lacks an import
   2.203 +&lt;/p&gt;
   2.204 +</description>
   2.205 +        <category>Results</category>
   2.206 +        <comments>http://trac.cps-cms.org/ticket/2248#changelog</comments>
   2.207 +    </item><item>
   2.208 +        <link>http://trac.cps-cms.org/ticket/2249</link>
   2.209 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2249</guid>
   2.210 +        <title>#2249: DateTime List Field</title>
   2.211 +        <pubDate>Wed, 06 Oct 2010 16:33:04 GMT</pubDate>
   2.212 +          <dc:creator>gracinet</dc:creator>
   2.213 +        <description>&lt;p&gt;
   2.214 +Now that fields are strongly typed &lt;a class="closed ticket" href="http://trac.cps-cms.org/ticket/2178" title="defect: Fields validation not called (for Ascii field) (closed: fixed)"&gt;#2178&lt;/a&gt;, old workarounds in custom code don't pass anymore, and we really need a field for lists of DateTime objects
   2.215 +&lt;/p&gt;
   2.216 +</description>
   2.217 +        <category>Results</category>
   2.218 +        <comments>http://trac.cps-cms.org/ticket/2249#changelog</comments>
   2.219 +    </item><item>
   2.220 +        <link>http://trac.cps-cms.org/ticket/2258</link>
   2.221 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2258</guid>
   2.222 +        <title>#2258: Remove the "Edit online" action on the File document type</title>
   2.223 +        <pubDate>Mon, 11 Oct 2010 15:57:37 GMT</pubDate>
   2.224 +          <dc:creator>madarche</dc:creator>
   2.225 +        <description>&lt;p&gt;
   2.226 +This action can be misleading since it exists both on the document and on the widget. Moreover some document types have multiple widgets with this "Edit online" action, thus creating an inconsistency from the user point of view.
   2.227 +&lt;/p&gt;
   2.228 +</description>
   2.229 +        <category>Results</category>
   2.230 +        <comments>http://trac.cps-cms.org/ticket/2258#changelog</comments>
   2.231 +    </item><item>
   2.232 +        <link>http://trac.cps-cms.org/ticket/2262</link>
   2.233 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2262</guid>
   2.234 +        <title>#2262: [Regression] All stats to 0%</title>
   2.235 +        <pubDate>Tue, 12 Oct 2010 21:58:59 GMT</pubDate>
   2.236 +          <dc:creator>madarche</dc:creator>
   2.237 +        <description>&lt;p&gt;
   2.238 +Since the Unicode migration all the answers in the stats page of CPSCollector documents return 0%.
   2.239 +&lt;/p&gt;
   2.240 +</description>
   2.241 +        <category>Results</category>
   2.242 +        <comments>http://trac.cps-cms.org/ticket/2262#changelog</comments>
   2.243 +    </item><item>
   2.244 +        <link>http://trac.cps-cms.org/ticket/2267</link>
   2.245 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2267</guid>
   2.246 +        <title>#2267: ZMI server crash on Debian Squeeze</title>
   2.247 +        <pubDate>Wed, 27 Oct 2010 08:21:53 GMT</pubDate>
   2.248 +          <dc:creator>gracinet</dc:creator>
   2.249 +        <description>&lt;p&gt;
   2.250 +On Debian 6.0 Squeeze (current testing), opening the ZMI on the portal object leads to a systematic server crash (process dies) while serving the request for the left frame (&lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;manage_menu&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt;).
   2.251 +&lt;/p&gt;
   2.252 +&lt;p&gt;
   2.253 +End of console log:
   2.254 +&lt;/p&gt;
   2.255 +&lt;pre class="wiki"&gt;2010-10-27 10:15:06 DEBUG CPSUserFolder Setting user manager into cache
   2.256 +2010-10-27 10:15:06 DEBUG PortalTransforms Importing module = st
   2.257 +2010-10-27 10:15:06 DEBUG PortalTransforms Appending transform = &amp;lt;module 'Products.PortalTransforms.transforms.st' from '/home/zopes/energy/Products/PortalTransforms/transforms/st.pyc'&amp;gt;
   2.258 +2010-10-27 10:15:06 DEBUG PortalTransforms Importing module = rest
   2.259 +AccessInit: hash collision: 3 for both 1 and 1
   2.260 +purity-/var/opt/cps-dev/cps3 $
   2.261 +&lt;/pre&gt;&lt;p&gt;
   2.262 +Navigating to the &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;portal_transforms&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; tool produces the same effect.
   2.263 +&lt;/p&gt;
   2.264 +&lt;p&gt;
   2.265 +Seen on various versions, ranging from 3.4.6 to pre-3.5.2.
   2.266 +&lt;/p&gt;
   2.267 +</description>
   2.268 +        <category>Results</category>
   2.269 +        <comments>http://trac.cps-cms.org/ticket/2267#changelog</comments>
   2.270 +    </item><item>
   2.271 +        <link>http://trac.cps-cms.org/ticket/2277</link>
   2.272 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2277</guid>
   2.273 +        <title>#2277: Update to the TinyMCE current version</title>
   2.274 +        <pubDate>Tue, 16 Nov 2010 03:23:35 GMT</pubDate>
   2.275 +          <dc:creator>madarche</dc:creator>
   2.276 +        <description>&lt;p&gt;
   2.277 +The current version of TinyMCE: 3.3.9.2
   2.278 +&lt;/p&gt;
   2.279 +</description>
   2.280 +        <category>Results</category>
   2.281 +        <comments>http://trac.cps-cms.org/ticket/2277#changelog</comments>
   2.282 +    </item><item>
   2.283 +        <link>http://trac.cps-cms.org/ticket/2281</link>
   2.284 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2281</guid>
   2.285 +        <title>#2281: Recreate renderJS</title>
   2.286 +        <pubDate>Sat, 20 Nov 2010 15:05:01 GMT</pubDate>
   2.287 +          <dc:creator>gracinet</dc:creator>
   2.288 +        <description>&lt;p&gt;
   2.289 +There is currently no CPSDesignerThemes equivalent of the &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;renderJS&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; method.
   2.290 +&lt;/p&gt;
   2.291 +&lt;p&gt;
   2.292 +Its purpose is to include in the page head element all javascript resources needed by portlets (in the case of custom portlets, this is part of the portlet fields).
   2.293 +&lt;/p&gt;
   2.294 +&lt;p&gt;
   2.295 +Without this, CPSDesignerThemes is almost unusable for portlets requiring javascript resources. This has been tolerable up to now, because with migrated themes from CPSSkins, we had a call to CPSSkins' &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;renderJS&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; method, thanks to the &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;cps&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; URL scheme, and this works approximatively, namely as long as the theme is not edited to change slots or new portlet slots don't need any JS resource, and CPSSkins' original theme is still present.
   2.296 +&lt;/p&gt;
   2.297 +&lt;p&gt;
   2.298 +CPSDesignerThemes' version should rely on the recently introduced request resource registry (see &lt;a class="assigned ticket" href="http://trac.cps-cms.org/ticket/837" title="feature: Refactoring CSS and JavaScript declaration (assigned)"&gt;#837&lt;/a&gt;).
   2.299 +&lt;/p&gt;
   2.300 +&lt;p&gt;
   2.301 +As a side note, there will be a difference: CPSSkins' renderJS aggregates all the needed JS code and is loaded by a single separated HTTP request, whereas the registry will trigger a request per JS file. Therefore CPSSkins better complies to recommendations of tools like &lt;a class="ext-link" href="http://developer.yahoo.com/yslow/"&gt;&lt;span class="icon"&gt;YSlow&lt;/span&gt;&lt;/a&gt; (minimizing the number of requests), which of course don't consider the server-side cost of such an aggregation. CPSSkins' &lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;renderJS&lt;/tt&gt;&lt;tt&gt;&lt;/tt&gt; has always been a pain to cache, because of its query URL part (page id).
   2.302 +&lt;/p&gt;
   2.303 +&lt;p&gt;
   2.304 +Providing such a single request inclusion for all portlets could be a later evolution, possibly optional and more general than portlets.
   2.305 +&lt;/p&gt;
   2.306 +</description>
   2.307 +        <category>Results</category>
   2.308 +        <comments>http://trac.cps-cms.org/ticket/2281#changelog</comments>
   2.309 +    </item><item>
   2.310 +        <link>http://trac.cps-cms.org/ticket/2292</link>
   2.311 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2292</guid>
   2.312 +        <title>#2292: Portlet edition popup not unicode-ready</title>
   2.313 +        <pubDate>Sat, 27 Nov 2010 23:30:25 GMT</pubDate>
   2.314 +          <dc:creator>gracinet</dc:creator>
   2.315 +        <description>&lt;p&gt;
   2.316 +I created a portlet and chose "Ă€ la une" as title:
   2.317 +&lt;/p&gt;
   2.318 +&lt;pre class="wiki"&gt;    * &amp;lt;FSPageTemplate at /cps/cpsportlet_edit_form used for /cps/.cps_portlets/a-la-une&amp;gt;
   2.319 +(...)
   2.320 +    * Module Products.PageTemplates.TALES, line 221, in evaluate
   2.321 +      URL: file:CPSDefault/skins/cps_default/header_lib_header.pt
   2.322 +      Line 19, Column 2
   2.323 +      Expression: standard:'expanded_title|here/expanded_title'
   2.324 +      Names:
   2.325 +      {'container': &amp;lt;CPSDefaultSite at /cps&amp;gt;,
   2.326 +       'context': &amp;lt;CPSPortlet at /cps/.cps_portlets/a-la-une&amp;gt;,
   2.327 +       'default': &amp;lt;Products.PageTemplates.TALES.Default instance at 0x7feffff273f8&amp;gt;,
   2.328 +       'here': &amp;lt;CPSPortlet at /cps/.cps_portlets/a-la-une&amp;gt;,
   2.329 +       'loop': &amp;lt;Products.PageTemplates.TALES.SafeMapping object at 0x5b8b7e8&amp;gt;,
   2.330 +       'modules': &amp;lt;Products.PageTemplates.ZRPythonExpr._SecureModuleImporter instance at 0x7feffff27830&amp;gt;,
   2.331 +       'nothing': None,
   2.332 +       'options': {'args': ()},
   2.333 +       'repeat': &amp;lt;Products.PageTemplates.TALES.SafeMapping object at 0x5b8b7e8&amp;gt;,
   2.334 +       'request': &amp;lt;HTTPRequest, URL=http://localhost:8080/cps/.cps_portlets/a-la-une/edit_form&amp;gt;,
   2.335 +       'root': &amp;lt;Application at &amp;gt;,
   2.336 +       'template': &amp;lt;FSPageTemplate at /cps/cpsportlet_edit_form used for /cps/.cps_portlets/a-la-une&amp;gt;,
   2.337 +       'traverse_subpath': [],
   2.338 +       'user': &amp;lt;User 'admin'&amp;gt;}
   2.339 +(...)
   2.340 +      * Module Products.CMFCore.FSPythonScript, line 164, in _exec
   2.341 +    * Module None, line 13, in expanded_title
   2.342 +      &amp;lt;FSPythonScript at /cps/expanded_title used for /cps/.cps_portlets/a-la-une&amp;gt;
   2.343 +      Line 13
   2.344 +UnicodeDecodeError: &amp;lt;exceptions.UnicodeDecodeError instance at 0x5c35a70&amp;gt;
   2.345 +&lt;/pre&gt;</description>
   2.346 +        <category>Results</category>
   2.347 +        <comments>http://trac.cps-cms.org/ticket/2292#changelog</comments>
   2.348 +    </item><item>
   2.349 +        <link>http://trac.cps-cms.org/ticket/2296</link>
   2.350 +        <guid isPermaLink="false">http://trac.cps-cms.org/ticket/2296</guid>
   2.351 +        <title>#2296: Keywords metadata should be indexed too</title>
   2.352 +        <pubDate>Fri, 03 Dec 2010 13:25:41 GMT</pubDate>
   2.353 +          <dc:creator>madarche</dc:creator>
   2.354 +        <description>&lt;p&gt;
   2.355 +Keywords metadata, introduced in &lt;a class="closed ticket" href="http://trac.cps-cms.org/ticket/495" title="enhancement: Document HTML view page should contain HTML metadata (closed: fixed)"&gt;#495&lt;/a&gt; for SEO, should be indexed too, so that internal search on those keywords could return the matching documents to the user doing the search.
   2.356 +&lt;/p&gt;
   2.357 +&lt;p&gt;
   2.358 +Having the keywords not indexed confuses users.
   2.359 +&lt;/p&gt;
   2.360 +</description>
   2.361 +        <category>Results</category>
   2.362 +        <comments>http://trac.cps-cms.org/ticket/2296#changelog</comments>
   2.363 +    </item>
   2.364 + </channel>
   2.365 +</rss>
   2.366 \ No newline at end of file