I modified the raise sentence and there's no spaces in the layout mode:

     Raise RuntimeError('unknown mode %r' % mode)
   RuntimeError: unknown mode 'hidden'

However I don't generate the identifier of the layout mode, It's generated 
automatically when I say to hide in view mode.
The error can be reproduced with this steps in a brand new CPS instance:

        1.- Create a News Item in workspaces
        2.- Go to portal_layouts->newsitem_end
        3.- Add a new html widget with id "subwidget" with some content in      
"html for view" and "hidden in layout modes" with value "view".
        4.- Add a new compound widget with id "superwidget" and in
        5.- Try to show the News Item created in the first step and the error   
should appear.

Thank you.

JoseLuis de la Rosa Triviño 
Becario Área de Sistemas de Información 
FUNDACIÓN IAVANTE 
[EMAIL PROTECTED] 
Tel. 951 015 300 


Este correo electrónico y, en su caso, cualquier fichero anexo, contiene 
información confidencial exclusivamente dirigida a su(s) destinatario(s). Toda 
copia o divulgación deberá ser autorizada por IAVANTE.

This e-mail and any attachments are confidential and exclusively directed to 
its adressee(s). Any copy or distribution will have to be authorized by IAVANTE.



-----Mensaje original-----
De: Florent Guillaume [mailto:[EMAIL PROTECTED] 
Enviado el: jueves, 27 de abril de 2006 11:39
Para: JoseLuis de la Rosa Triviño
Asunto: Re: [CPS-devel] Runtime error: Unknown mode hidden

Removing hidden widgets is done in two phases in Layout.py.
In your case it should be done. Are you sure you don't have a space  
after or before 'hidden' ?
To make sure, replace the %s by a %r in the raise at the last line of  
the traceback.

Florent

On 27 Apr 2006, at 11:02, JoseLuis de la Rosa Triviño wrote:

> Hello,
>
>
> I'm working with CPS 3.4 and I'm using compound widgets. When a  
> widget that is inside a compound widget should be hidden, this  
> error occurs:
>
>
> ######################################################
>
> 2006-04-27 09:56:56 ERROR Zope.SiteErrorLog http:// 
> 10.207.248.60:4000/bpi_des/cpsdirectory_entry_view
>
> Traceback (most recent call last):
>
>   File "/opt/zope2.9/lib/python/ZPublisher/Publish.py", line 114,  
> in publish
>
>     request, bind=1)
>
>   File "/opt/zope2.9/lib/python/ZPublisher/mapply.py", line 88, in  
> mapply
>
>     if debug is not None: return debug(object,args,context)
>
>   File "/opt/zope2.9/lib/python/ZPublisher/Publish.py", line 40, in  
> call_object
>
>     result=apply(object,args) # Type s<cr> to step into published  
> object.
>
>   File "/opt/zope2.9/lib/python/Shared/DC/Scripts/Bindings.py",  
> line 311, in __call__
>
>     return self._bindAndExec(args, kw, None)
>
>   File "/opt/zope2.9/lib/python/Shared/DC/Scripts/Bindings.py",  
> line 348, in _bindAndExec
>
>     return self._exec(bound_data, args, kw)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CMFCore/ 
> FSPageTemplate.py", line 195, in _exec
>
>     result = self.pt_render(extra_context=bound_names)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CMFCore/ 
> FSPageTemplate.py", line 134, in pt_render
>
>     result = FSPageTemplate.inheritedAttribute('pt_render')(
>
>   File "/opt/zope2.9/lib/python/Products/PageTemplates/ 
> PageTemplate.py", line 104, in pt_render
>
>     tal=not source, strictinsert=0)()
>
>   File "/opt/zope2.9/lib/python/TAL/TALInterpreter.py", line 238,  
> in __call__
>
>     self.interpret(self.program)
>
>   File "/opt/zope2.9/lib/python/TAL/TALInterpreter.py", line 281,  
> in interpret
>
>     handlers[opcode](self, args)
>
>   File "/opt/zope2.9/lib/python/TAL/TALInterpreter.py", line 507,  
> in do_setLocal_tal
>
>     self.engine.setLocal(name, self.engine.evaluateValue(expr))
>
>   File "/opt/zope2.9/lib/python/Products/PageTemplates/TALES.py",  
> line 221, in evaluate
>
>     return expression(self)
>
>   File "/opt/zope2.9/lib/python/Products/PageTemplates/ 
> ZRPythonExpr.py", line 47, in __call__
>
>     return eval(code, g, {})
>
>   File "Python expression "dir.renderEntryDetailed(id)"", line 1,  
> in <expression>
>
>   File "/root/instances/zope2.9/innovaDes/Products/CPSDirectory/ 
> BaseDirectory.py", line 562, in renderEntryDetailed
>
>     layout_mode=layout_mode, **kw)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CPSDirectory/ 
> BaseDirectory.py", line 932, in _renderLayout
>
>     layout.renderLayoutStructure(layout_structure, datastructure,  
> **kw)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CPSSchemas/ 
> Layout.py", line 391, in renderLayoutStructure
>
>     widget_infos=widget_infos, **kw)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CPSSchemas/ 
> BasicWidgets.py", line 2030, in render
>
>     rendered = widget.render(widget_mode, datastructure, **kw)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CPSSchemas/ 
> BasicWidgets.py", line 2030, in render
>
>     rendered = widget.render(widget_mode, datastructure, **kw)
>
>   File "/root/instances/zope2.9/innovaDes/Products/CPSSchemas/ 
> BasicWidgets.py", line 295, in render
>
>     raise RuntimeError('unknown mode %s' % mode)
>
> RuntimeError: unknown mode hidden
>
> #################################################################
>
>
> I have found the code in BasicWidgets.py, but in these classes I  
> can't find an example of how hidden mode is handled in other cases.  
> So I think this is controled before the call to render the widget.
>
> The question is, where should I control to avoid the widget get  
> rendered if the mode is hidden?
>
> I wouldn't like to modify BasicWidgets.py because in that case my  
> product would depend on a customized CPSSchemas.
>
>
> Thank you very much.
>
> JoseLuis de la Rosa Triviño
> Becario Área de Sistemas de Información
> FUNDACIÓN IAVANTE
> [EMAIL PROTECTED]
> Tel. 951 015 300
>
>
> Este correo electrónico y, en su caso, cualquier fichero anexo,  
> contiene información confidencial exclusivamente dirigida a su(s)  
> destinatario(s). Toda copia o divulgación deberá ser autorizada por  
> IAVANTE.
>
> This e-mail and any attachments are confidential and exclusively  
> directed to its adressee(s). Any copy or distribution will have to  
> be authorized by IAVANTE.
>
>
> _______________________________________________
> cps-devel mailing list
> http://lists.nuxeo.com/mailman/listinfo/cps-devel

-- 
Florent Guillaume, Nuxeo (Paris, France)   Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]


_______________________________________________
cps-devel mailing list
http://lists.nuxeo.com/mailman/listinfo/cps-devel

Reply via email to