Gisele,
o KeyError apontado é devido a não existência da macro portlet.
No código que você colocou abaixo existe uma macro chamada navegacao,
conforme esta linha:
div metal:define-macro=navegacao
deveria ser:
div metal:define-macro=portlet
ou então você poderia alterar o nome da macro na chamada dos slots
Abs,
Érico Andrei
On 5/22/07, Gisele Borges [EMAIL PROTECTED] wrote:
Luciano,
Sim, tem a macro portlet...Eu customizei o portlet_navigation porque
vou precisar passar na url um /mostra_documento e apontar para a minha
skin e não a do plone e continua dando o erro:
Tipo de Erro
KeyError
Valor do Erro
u'portlet'
Segue o portlet_navigation customizado. Repare no link o
/mostra_documento que é uma outra page template que monta o documento
na nova skin.
===
html xmlns:tal=http://xml.zope.org/namespaces/tal;
xmlns:metal=http://xml.zope.org/namespaces/metal;
i18n:domain=plone
body
!-- This code is *really* messed up, and will be replaced in the next
version of Plone.
Do not try to make sense of this.
--
div metal:define-macro=navegacao
i18n:domain=plone
tal:omit-tag=
tal:define=isContainer here/isPrincipiaFolderish|nothing;
navBatchStart request/navBatchStart | python:None;
portalObject portal;
tree
python:here.plone_utils.createNavigationTreeBuilder
(portalObject,navBatchStart);
showOtherNav python:0;
showNav python:0;
listContentsPermission python:checkPermission('List
folder contents', here);
notFolderContents
python:test(template.getId()!='folder_contents', 1, 0);
editorView python:test(listContentsPermission and
notFolderContents, 1, 0);
croppingLength
here/navtree_properties/croppingLength |
portal_properties/navtree_properties/croppingLength | python:18;
rolesSeeContentsView
here/navtree_properties/rolesSeeContentsView |
portal_properties/navtree_properties/rolesSeeContentsView |
python:['Manager','Reviewer','Owner'];
useFolderContents
here/navtree_properties/typesLinkToFolderContents |
portal_properties/navtree_properties/typesLinkToFolderContents |
python:[];
desc_ellipsis site_properties/ellipsis;
div class=portlet id=portlet-navigation-tree
div
h3 class=titulo i18n:translate=box_navigationNavegação/h3
div class=portletBody
div class=portletContent odd
div tal:condition=tree/prev
a tal:attributes=href
string:${request/URL}?navBatchStart=${tree/prevBatchStart}
span tal:replace=desc_ellipsis.../span
/a
/div
div tal:repeat=te tree/list
span tal:define=iscurrent te/iscurrent | python:0;
sibling python:te['object'];
typeInfo sibling/getTypeInfo;
stdCommand python:test(not
notFolderContents,'folder_contents',test(typeInfo.id in
useFolderContents,'folder_contents',typeInfo.getActionById('view')));
command python:test(stdCommand
in ('folder_contents') and not checkPermission('List folder
contents',sibling) ,'',stdCommand);
title
python:te['object'].title_or_id();
charset
site_properties/default_charset|string:utf-8;
sibling_title python:' '.join(
(unicode(title, charset)[:croppingLength]).encode(charset).split(' '));
tal:on-error=structure
string:lt;!--Error in Navigation loop!!--gt;
!-- tal:define=url string:${sibling/absolute_url}/${command} --
a href=
tal:condition=python: sibling != portalObject
tal:define=url
string:${sibling/absolute_url}/mostra_padrao
tal:attributes=href url;
title python:test(title !=
sibling_title, title, '');
style python:
'padding-left: ' + str(te['indent']/2.0) + 'em;;' + 'display:block';
accesskey=accesskeys-navigation
i18n:attributes=accesskey
span tal:condition=not: iscurrent
tal:content=sibling_title /
span class=currentNavItem
tal:condition= iscurrent tal:content=sibling_title /
/a
a href=
tal:condition=python: sibling == portalObject
tal:define=url
string:${sibling/absolute_url}/mostra_padrao
tal:attributes=href url;
title title;
accesskey=accesskeys-navigation
i18n:attributes=accesskey
span class= tal:attributes=class
python:test(iscurrent,'currentNavItem','')
i18n:translate=tabs_homeHome/span
/a
/span
/div
div tal:condition=tree/next
a tal:attributes=href
string:${request/URL}?navBatchStart=${tree/nextBatchStart}
span tal:replace=desc_ellipsis.../span
/a
/div
/div
/div
/div
/div
/div
/body
/html
--- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, Luciano
Ramalho [EMAIL PROTECTED]
escreveu
Gisele, o erro deve estar acontecendo aqui, porque é o único lugar em
que seu código tenta acessar algo chamado 'portlet' :
span metal:use-macro=here/portlet_navigationold/macros/portlet /
Verifque se o seu portlet_navigationold (note o old) possui uma
macro chamada portlet.
[ ]s
Luciano