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_navigation">Navegaçã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_home">Home</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
>

Responder a