Creating a Plone 4 custom portlet manager - plone

I am trying to create a custom portlet manager to my theme's footer by following tutorials from Plone.org and WebLion.
What I am trying to do is adding a viewlet manager and a viewlet, that should be functioning as the portlet manager, into my theme.
I am getting a ContentProviderLookupError for the viewlet that is supposed to work as my portlet manager when the viewlet's template has a TAL-block in it. The viewletmanager and viewlet template is shown correctly on the page as far as I can tell if I omit the TAL-block.
The theme is done using the sane_plone_addon_template from here
I really cant see what I am doing wrong here and being a complete noob when it comes to Plone really doesn't help, so any ideas to nudge me in the right direction would really be appreciated.
Heres my configure.zcml
<browser:viewletManager
name="footerPortlets1"
provides=".interfaces.IspFooterPortletsViewletManager"
class="plone.app.viewletmanager.manager.OrderedViewletManager"
layer=".interfaces.IThemeSpecific"
permission="zope2.View"
/>
<browser:viewlet
name="footerPortlets"
manager=".interfaces.IspFooterPortletsViewletManager"
template="templates/footerPortlets.pt"
layer=".interfaces.IThemeSpecific"
permission="zope2.View"
/>
portlets.xml in profiles/default/
<?xml version="1.0"?>
<portlets
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
i18n:domain="plone">
<portletmanager
name="footerPortlets"
type="mytheme.interfaces.IFooterPortlets"
/>
</portlets>
interfaces.py
from plone.portlets.interfaces import IPortletManager
from plone.app.portlets.interfaces import IColumn
class IFooterPortlets(IPortletManager, IColumn):
""""""
heres the viewlet template footerPortlets.pt
<div id = "footer-portlets-container">
test
<tal:block replace="structure provider:footerPortlets" /> <!-- This part fails -->
</div>
And here's the stacktrace for the error:
Traceback (innermost last):
Module ZPublisher.Publish, line 126, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 46, in call_object
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module Products.CMFCore.FSPageTemplate, line 237, in _exec
Module Products.CMFCore.FSPageTemplate, line 177, in pt_render
Module Products.PageTemplates.PageTemplate, line 79, in pt_render
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate
- URL: file:/home/user/Plone/zinstance/src/santasport/santasport/templates/plonetheme.sunburst.skins.sunburst_templates.main_template.pt
- Line 181, Column 3
- Expression: <StringExpr u'footerPortlets1'>
- Names:
{'container': <ATDocument at /Santasport/front-page>,
'context': <ATDocument at /Santasport/front-page>,
'default': <object object at 0xb77bc7d0>,
'here': <ATDocument at /Santasport/front-page>,
'loop': {},
'nothing': None,
'options': {'args': ()},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xb4a8e34c>,
'request': <HTTPRequest, URL=http://127.0.0.1:8080/Santasport/front-page/document_view>,
'root': <Application at >,
'template': <FSPageTemplate at /Santasport/front-page/document_view>,
'traverse_subpath': [],
'user': <PropertiedUser 'admin'>}
Module zope.contentprovider.tales, line 80, in __call__
Module plone.app.viewletmanager.manager, line 154, in render
Module plone.app.viewletmanager.manager, line 85, in render
Module zope.browserpage.simpleviewclass, line 44, in __call__
Module Products.Five.browser.pagetemplatefile, line 125, in __call__
Module Products.Five.browser.pagetemplatefile, line 59, in __call__
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate
- URL: /home/user/Plone/zinstance/src/santasport/santasport/templates/footerPortlets.pt
- Line 3, Column 1
- Expression: <StringExpr u'footerportlets'>
- Names:
{'args': (),
'container': <ATDocument at /my-theme/front-page>,
'context': <ATDocument at /my-theme/front-page>,
'default': <object object at 0xb77bc7d0>,
'here': <ATDocument at /my-theme/front-page>,
'loop': {},
'nothing': None,
'options': {},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xb4a7dcfc>,
'request': <HTTPRequest, URL=http://127.0.0.1:8080/my-theme/front-page/document_view>,
'root': <Application at >,
'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0xb5e055ac>,
'traverse_subpath': [],
'user': <PropertiedUser 'admin'>,
'view': <Products.Five.viewlet.viewlet.SimpleViewletClass from /home/user/Plone/zinstance/src/my-theme/my-theme/templates/footerPortlets.pt object at 0xb4a3f52c>,
'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0xb5e2cdac>}
Module zope.contentprovider.tales, line 66, in __call__
ContentProviderLookupError: footerPortlets
EDIT:
I got this code working somewhat by adding my viewlet to viewlets.xml and adding it to my profiles-folder (as one of the tutorials said FML), but I didn't really test it out any further but instead looked into Mikko's tutorial which worked for me out of the box really nicely.
Ps: Any ideas how to mark this question up?

You'll need to import the portlets.xml configuration.
The most direct way is via the portal_setup tool in the ZMI. Find your product name on the "Import" tab (in the Select Profile or Snapshot select box), then when the page has reloaded (shows 'Available Import Steps for "Name of your product profile"') you need to look up the Portlets import step in the list ("Import portlet managers, types, assignments and blacklistings"), tick it's box, and hit the "Import selected steps" button at the bottom.
The WebLion tutorial documented this a little vaguely as "The configuration is now complete. Uninstall your theme, restart Zope and reinstall your theme.". The Plone.org documentation appears to omit it entirely.

Related

Plone upgrade 2.1.3 > 3.0.6 fails with catalog errors

I'm upgrading an almost vanilla Plone from 2.1.3 to 3.0.6 (that's old stuff, I know). portal_migration successfully performs the migration, but then reports errors in rebuilding the catalog
End of upgrade path, migration has finished
Your ZODB and Filesystem Plone instances are now up-to-date.
Exception was thrown while cataloging
File "/home/applinet/local/intranet/plone/intranet/Products/CMFPlone/MigrationTool.py", line 262, in upgrade catalog.refreshCatalog(clear=1)
File "/home/applinet/local/intranet/plone/installation/lib/python/Products/ZCatalog/ZCatalog.py", line 281, in refreshCatalog cat.clear()
File "/home/applinet/local/intranet/plone/installation/lib/python/Products/ZCatalog/Catalog.py", line 108, in clear self.getIndex(index).clear()
Viewing the site fails with an exception in event.log that also seems catalog related:
2017-09-05T17:33:27 ERROR Zope.SiteErrorLog
http://stretch.fritz.box:49171/intranet/folder_listing
Traceback (innermost last):
Module ZPublisher.Publish, line 119, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 42, in call_object
Module Shared.DC.Scripts.Bindings, line 313, in __call__
Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
Module Products.CMFCore.FSPageTemplate, line 216, in _exec
Module Products.CMFCore.FSPageTemplate, line 155, in pt_render
Module Products.PageTemplates.PageTemplate, line 89, in pt_render
Module zope.pagetemplate.pagetemplate, line 117, in pt_render
- Warning: Macro expansion failed
- Warning: exceptions.KeyError: 'kss_generic_macros'
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 346, in interpret
Module zope.tal.talinterpreter, line 891, in do_useMacro
Module zope.tal.talinterpreter, line 346, in interpret
Module zope.tal.talinterpreter, line 536, in do_optTag_tal
Module zope.tal.talinterpreter, line 521, in do_optTag
Module zope.tal.talinterpreter, line 516, in no_tag
Module zope.tal.talinterpreter, line 346, in interpret
Module zope.tal.talinterpreter, line 891, in do_useMacro
Module zope.tal.talinterpreter, line 346, in interpret
Module zope.tal.talinterpreter, line 586, in do_setLocal_tal
Module zope.tales.tales, line 696, in evaluate
- URL: file:/home/applinet/local/intranet/plone/intranet/Products/CMFPlone/skins/plone_templates/global_defines.pt
- Line 8, Column 0
- Expression: <PathExpr standard:u'plone_view/globalize'>
- Names:
{'container': <PloneSite at /intranet>,
'context': <PloneSite at /intranet>,
'default': <object object at 0x7ff78a528200>,
'here': <PloneSite at /intranet>,
'loop': {},
'nothing': None,
'options': {'args': ()},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7ff76027e758>,
'request': <HTTPRequest, URL=http://stretch.fritz.box:49171/intranet/folder_listing>,
'root': <Application at >,
'template': <FSPageTemplate at /intranet/folder_listing>,
'traverse_subpath': [],
'user': <PropertiedUser 'admin'>}
Module zope.tales.expressions, line 217, in __call__
Module Products.PageTemplates.Expressions, line 161, in _eval
Module Products.PageTemplates.Expressions, line 123, in render
Module Products.CMFPlone.browser.ploneview, line 68, in globalize
Module Products.CMFPlone.browser.ploneview, line 125, in _initializeData
Module Products.CMFPlone.browser.navigation, line 182, in topLevelTabs
Module Products.ZCatalog.Lazy, line 158, in __getitem__
Module Products.ZCatalog.Catalog, line 127, in __getitem__
KeyError: 403495479
An attempt to update the catalog in ZMI > site > portal_catalog > Advanced also fails:
2017-09-05T18:05:03 ERROR Zope.SiteErrorLog http://stretch.fritz.box:49171/intranet/portal_catalog/manage_catalogReindex
Traceback (innermost last):
Module ZPublisher.Publish, line 119, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 42, in call_object
Module Products.ZCatalog.ZCatalog, line 260, in manage_catalogReindex
Module Products.ZCatalog.ZCatalog, line 281, in refreshCatalog
Module Products.ZCatalog.Catalog, line 108, in clear
AttributeError: clear
Any tips or ideas as to what may be causing this?
I found the problem. The list of indexes in the Plone Catalog Tool shows three indexes in broken state, because the product TextIndexNG3 was not installed.
I installed TextIndexNG3 3.2.5 and that solved it.

(Static) Portlet of group: error while rendering

I've created a static portlet to AuthenticatedUsers group and get this error on page load: There was an error while rendering the portlet. Others types portlets generates no error
client1/Event.log:
2016-06-02T16:43:35 ERROR Zope.SiteErrorLog 1464896615.090.768319144619 <site>/front-page/document_view
Traceback (innermost last):
Module Products.PloneFormGen.patches, line 21, in safe_render
Module Products.Five.browser.pagetemplatefile, line 125, in __call__
Module Products.Five.browser.pagetemplatefile, line 59, in __call__
Module zope.pagetemplate.pagetemplate, line 132, in pt_render
Module zope.pagetemplate.pagetemplate, line 240, in __call__
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 852, in do_condition
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate
- URL: /usr/local/Plone/buildout-cache/eggs/plone.portlet.static-2.0.3-py2.7.egg/plone/portlet/static/static.pt
- Line 1, Column 0
- Expression: <PathExpr standard:u'view/transformed'>
- Names:
{'args': (),
'container': <ATDocument at /eleitoral/front-page>,
'context': <ATDocument at /eleitoral/front-page>,
'default': <object object at 0x7fc7329c4500>,
'here': <ATDocument at /eleitoral/front-page>,
'loop': {},
'nothing': None,
'options': {},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7fc71a6777e0>,
'request': <HTTPRequest, URL=<site>/front-page/document_view>,
'root': <Application at >,
'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x7fc723f6d390>,
'traverse_subpath': [],
'user': <PloneUser 'lhmp1967'>,
'view': <plone.portlet.static.static.Renderer object at 0x7fc71b031690>,
'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7fc71a67c790>}
Module zope.tales.expressions, line 217, in __call__
Module Products.PageTemplates.Expressions, line 155, in _eval
Module Products.PageTemplates.Expressions, line 117, in render
Module plone.portlet.static.static, line 137, in transformed
Module OFS.Traversable, line 317, in restrictedTraverse
Module OFS.Traversable, line 285, in unrestrictedTraverse
- __traceback_info__: ([], 'AuthenticatedUsers')
AttributeError: AuthenticatedUsers
The plone.portlet.static Version 2.0.3 indicates you're using Plone 4.3.4, since Plone 4.3.3 has plone.portlet.static Version 2.0.2 and Plone 4.3.5 has plone.portlet.static Version 2.0.4.
The next Bugfix release of plone.portlet.static (2.0.4)fixes your Problem.
Check: https://github.com/plone/plone.portlet.static/commit/089012f2e4d7cf911c1361a3b0de334b3f1145c2
The portlet assignment context has been fixed for other categories than context portlets.
You may upgrade only the portlet to Version 2.0.4, or the whole site at least to Plone 4.3.5.

Omit site site in returned result when using getPath in Plone page templates

I have a piece of TALES for a page template in Plone which looks through the results of a collection and inserts them into a box (similar to that of a collection portlet)
I have an issue in getting a URL from the returned items, I have been using getPath however it returns the site name, so my URLS end up being http://mysite.com/ThePloneSite/folder/page instead of just http://mysite.com/folder/page, currently my example TALES is as follows:
<a tal:attributes="href string:${item/getPath}/view">Item</a>
I have tried every variation I can imagine but I can't remember them all so here's a couple that don't work:
(this returns nothing)
<a tal:attributes="href item/absolute_url">Item</a>
this gives me a traceback, complaining about "getpath":
<a tal:attributes="python:item.getObject().absolute_url()">Item</a>
The only reason the site name being in the link is annoying is that in order to access the "State" and "Display" buttons you must click "View" after originally clicking on the link
NOTE: the last example works when you're using getFolderContents however I understand returning results from a collection are different.
Any help would be greatly appreciated, thanks.
EDIT Traceback for absolute version:
Traceback (innermost last):
Module ZPublisher.Publish, line 126, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 46, in call_object
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module Products.PageTemplates.ZopePageTemplate, line 334, in _exec
Module Products.PageTemplates.ZopePageTemplate, line 431, in pt_render
Module Products.PageTemplates.PageTemplate, line 79, in pt_render
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 852, in do_condition
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 954, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 852, in do_condition
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 946, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 821, in do_loop_tal
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 405, in do_startTag
Module zope.tal.talinterpreter, line 482, in attrAction_tal
Module Products.PageTemplates.Expressions, line 225, in evaluateText
Module zope.tales.tales, line 696, in evaluate
- URL: /peacehospice/portal_skins/custom/home_page_view
- Line 200, Column 12
- Expression: <PythonExpr alldoc.getObject().absolute_url()>
- Names:
{'container': <PloneSite at /peacehospice>,
'context': <ATDocument at /peacehospice/front-page>,
'default': <object object at 0x7fbed9313b30>,
'here': <ATDocument at /peacehospice/front-page>,
'loop': {u'alldoc': <Products.PageTemplates.Expressions.PathIterator object at 0x7fbebcd20c50>},
'nothing': None,
'options': {'args': ()},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7fbebde89680>,
'request': <HTTPRequest, URL=http://demo.kcsts.co.uk/front-page/home_page_view>,
'root': <Application at >,
'template': <ZopePageTemplate at /peacehospice/home_page_view used for /peacehospice/front-page>,
'traverse_subpath': [],
'user': <PropertiedUser 'dan'>}
Module Products.PageTemplates.ZRPythonExpr, line 48, in __call__
- __traceback_info__: alldoc.getObject().absolute_url()
Module PythonExpr, line 1, in <expression>
Module AccessControl.ImplPython, line 716, in guarded_getattr
Module AccessControl.ImplPython, line 658, in aq_validate
Module AccessControl.ImplPython, line 552, in validate
Module AccessControl.ImplPython, line 322, in validate
Module AccessControl.ImplPython, line 749, in raiseVerbose
Module AccessControl.ImplPython, line 726, in item_repr
Module plone.app.contentlisting.catalog, line 29, in __repr__
Module plone.app.contentlisting.catalog, line 74, in getPath
Module Products.ZCatalog.CatalogBrains, line 51, in getPath
AttributeError: getpath
TALES for getting content of collection:
<div id="all-documents" tal:define="allDocsBatch python:context.documents.alldocuments.results(b_start=b_start,b_size=10)">
<h3>All Documents</h3>
<div class="tabbedWrapper">
<div class="item" tal:repeat="alldoc allDocsBatch">
<p>
<img tal:replace="structure alldoc/getIcon" />
<a tal:attributes="href python:alldoc.getObject().absolute_url()" tal:content="alldoc/Title" />
<span class="tags" tal:condition="alldoc/Subject" tal:define="alldoctag alldoc/Subject">
<a tal:repeat="tag alldoctag" tal:content="tag"
tal:attributes="href string:${context/portal_url}/##search?Subject:list=${tag}"/>
</span>
</p>
</div>
</div>
</div>
EDIT #2
NOTE found a link http://copilotco.com/mail-archives/plone-users.2007/msg05113.html which may help but haven't had a chance to look at it just yet.
If item is a catalog brain (as in your example) you need to call item/getURL. absolute_url is for real objects.

anthill.exampletheme on Plone 4.2

I'm trying to install a Plone skin called anthill.exampletheme 0.2 on Plone version 4.2 but it keeps returning the error below. The extension, anthill.skinner 0.8 installed and runs fine by itself but not the example theme. Please help!
Traceback (innermost last):
Module ZPublisher.Publish, line 126, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 46, in call_object
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module Products.CMFCore.FSPageTemplate, line 237, in _exec
Module Products.CMFCore.FSPageTemplate, line 177, in pt_render
Module Products.PageTemplates.PageTemplate, line 79, in pt_render
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 583, in do_setLocal_tal
Module zope.tales.tales, line 696, in evaluate
URL: file:c:\plone42\eggs\anthill.exampletheme-0.2-py2.6.egg\anthill\exampletheme\skins\anthill_exampletheme_custom_templates\main_template.pt
Line 9, Column 0
Expression: <PathExpr standard:u'language'>
Names:
{'container': <PloneSite at /test>,
'context': <PloneSite at /test>,
'default': <object object at 0x00991838>,
'here': <PloneSite at /test>,
'loop': {},
'nothing': None,
'options': {'args': ()},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x08794A20>,
'request': <HTTPRequest, URL=http://localhost:8080/test/portal_skins/index_html>,
'root': <Application at >,
'template': <FSPageTemplate at /test/index_html>,
'traverse_subpath': [],
'user': <PropertiedUser 'admin'>}
Module zope.tales.expressions, line 217, in __call__
Module Products.PageTemplates.Expressions, line 147, in _eval
Module zope.tales.expressions, line 118, in _eval
KeyError: 'language'
According to:
https://dev.plone.org/ticket/10676
anthill.exampletheme's main_template is not Plone 4 compatible. Replace its main_template with a Plone 4 main_template (e.g. from sunburst) and you may get further.

I can't manage portlets

I Just migrated my portal to the newest version 4.0.7 from 3.3.5
I did a new install and migrate my Data.fs
When i click to manage Portlets i can't view de Add Portlet Combo, and when i click on manage portlets i see this error and the site crashes:
Traceback (innermost last):
Module ZPublisher.Publish, line 127, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 47, in call_object
Module Products.Five.browser.metaconfigure, line 477, in __call__
Module Products.Five.browser.pagetemplatefile, line 126, in __call__
Module Products.Five.browser.pagetemplatefile, line 60, in __call__
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 852, in do_condition
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 954, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 852, in do_condition
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 954, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 220, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate
- URL: file:/usr/local/Plone/buildout-cache/eggs/Plone-4.0.7-py2.6.egg/Products/CMFPlone/skins/plone_templates/main_template.pt
- Line 95, Column 22
- Expression: <StringExpr u'plone.leftcolumn'>
- Names:
{'args': (),
'container': <PloneSite at /Plone>,
'context': <PloneSite at /Plone>,
'default': <object object at 0x7f2637572ae0>,
'here': <PloneSite at /Plone>,
'loop': {},
'nothing': None,
'options': {},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xa39a730>,
'request': <HTTPRequest, URL=http://192.168.198.39:8080/Plone/##manage-group-portlets>,
'root': <Application at >,
'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x7375550>,
'traverse_subpath': [],
'user': <PloneUser 'mlopez'>,
'view': <Products.Five.metaclass.SimpleViewClass from /usr/local/Plone/buildout-cache/eggs/plone.app.portlets-2.0.4-py2.6.egg/plone/app/portlets/browser/templates/manage-group.pt object at 0xa392890>,
'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x9da9f90>}
Module zope.contentprovider.tales, line 80, in __call__
Module plone.app.portlets.browser.editmanager, line 66, in render
Module Products.Five.browser.pagetemplatefile, line 126, in __call__
Module Products.Five.browser.pagetemplatefile, line 60, in __call__
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 819, in do_loop_tal
Module zope.tales.tales, line 682, in setRepeat
Module zope.tales.tales, line 696, in evaluate
- URL: /usr/local/Plone/buildout-cache/eggs/plone.app.portlets-2.0.4-py2.6.egg/plone/app/portlets/browser/templates/edit-manager-macros.pt
- Line 45, Column 8
- Expression: <PathExpr standard:u'view/portlets'>
- Names:
{'args': (),
'container': <PloneSite at /Plone>,
'context': <PloneSite at /Plone>,
'default': <object object at 0x7f2637572ae0>,
'here': <PloneSite at /Plone>,
'loop': {},
'nothing': None,
'options': {},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xa37c838>,
'request': <HTTPRequest, URL=http://192.168.198.39:8080/Plone/##manage-group-portlets>,
'root': <Application at >,
'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x737f510>,
'traverse_subpath': [],
'user': <PloneUser 'mlopez'>,
'view': <plone.app.portlets.browser.editmanager.EditPortletManagerRenderer object at 0xa39b610>,
'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0xa39be10>}
Module zope.tales.expressions, line 217, in __call__
Module Products.PageTemplates.Expressions, line 157, in _eval
Module Products.PageTemplates.Expressions, line 119, in render
Module plone.app.portlets.browser.editmanager, line 78, in portlets
Module plone.memoize.view, line 47, in memogetter
Module plone.app.portlets.browser.editmanager, line 171, in _lazyLoadAssignments
Module plone.app.portlets.browser.manage, line 213, in getAssignmentsForManager
Module zope.container.btree, line 88, in __getitem__
KeyError: 'group'
x
There appears to be a corrupted portlet manager in your site; it is missing the "group" category. This doesn't normally happen, though.
You could open the plone.app.portlets.browser.manage module, and insert a PDB debug prompt, to see what manager this is. Look for the plone.app.portlets egg in your bin/instance script to find its path, then open the plone/app/portlets/browser/manage.py that in your favourite text editor. Insert your import pdb; pdb.set_trace() line before line 213, run your plone site in foreground mode (bin/instance fg) and start poking around. manager.__name__ should be interesting, for example, to figure out what manager this is.
You could then try to repair this by inserting an empty category mapper:
from plone.portlets.storage import PortletCategoryMapping
from plone.portlets.constants import GROUP_CATEGORY
column[GROUP_CATEGORY] = PortletCategoryMapping()
You may want to be careful with that, though; there may be other things broken here.

Resources