browserviews not recognized as view_templates
Tom Lazar
lists at tomster.org
Fri Sep 21 23:24:09 UTC 2007
hi everybody,
tim hicks and i are migrating Quills to Plone 3.0 and came across the
problem that topic- and archive views (which are now handled via
custom traversal adapters) are not recognized properly as
'view_templates', i.e. they lack their assigned portlets and blog
entries lack a commenting button, etc.
here's a snip from the issue that has been filed at [1]
--snip--
Plone's main_template does a test explained by this comment:
"The div with ID #content will only show up if we're actually on a
content view, never on edit forms, control panels etc. It's meant to
only wrap the actual content that gets rendered on a page, not the
other UI elements."
WeblogEntries are given URLs of the format "/year/month/day/name"
and, as a result, fail the test contained in "plone/app/layout/
globals". Because the WeblogEntries are not recognized as being
view_templates, the "content" div of the main_template is not
rendered. This causes both the contentActionMenus and the comments
portions of the page not to be rendered. Most problematic is the
dropping of the comments which loses any comments and the button to
create comments. Moreover, the main weblog pages leaves off the
"comments: x" link.
--snap--
and here's a relevant snippet from the traversal adapter[2]
class WeblogTraverser(DefaultPublishTraverse):
adapts(IWeblog, IHTTPRequest)
def publishTraverse(self, request, name):
# Only intercept certain names...
if name == 'topics':
# XXX 'topics' should probably not be hard-coded here.
Rather,
# it should be looked up on weblog config.
return TopicContainer('topics').__of__(self.context)
elif name == 'authors':
# XXX 'authors' should probably not be hard-coded here.
Rather,
# it should be looked up on weblog config.
return AuthorContainer('authors').__of__(self.context)
elif self.isArchiveFolder(name):
return ArchiveContainer(name).__of__(self.context)
elif self.isYear(name):
return YearArchive(name).__of__(self.context)
return super(WeblogTraverser, self).publishTraverse(request,
name)
can anybody shed some light on this?
thanks,
tom
[1] http://plone.org/products/quills/issues/97/?
[2] http://dev.plone.org/collective/browser/quills.app/trunk/quills/
app/traversal.py
--
Tom Lazar
http://tomster.org
More information about the Product-Developers
mailing list