[CPS-devel] Runtime error: Unknown mode hidden

Florent Guillaume fg at nuxeo.com
Thu Apr 27 14:39:03 CEST 2006


This should be fixed by:
http://svn.nuxeo.org/trac/pub/changeset/45036

Thanks,
Florent

On 27 Apr 2006, at 13:26, JoseLuis de la Rosa Triviño wrote:

> I've just modified the method "render" of the class  
> CPSCompoundWidget in the module BasicWidgets.py
> The code I propose is below. The only thing I dubt is if the check  
> (not widget.hidden_empty or rendered) is still needed. It's to say,  
> if widget.hidden_empty is true, does that mean that cell 
> ['widget_mode'] will be true? In that case the check won't be  
> necessary.
>
> Thank you.
>
> #####################################################
>     def render(self, mode, datastructure, **kw):
>         """Render in mode from datastructure."""
>         layout = aq_parent(aq_inner(self))
>         widget_infos = kw['widget_infos']
>         cells = []
>         for widget_id in self.widget_ids:
>             cell = {}
>             # widget, widget_mode, css_class
>             cell.update(widget_infos[widget_id])
>             widget = layout[widget_id]
>             widget_mode = cell['widget_mode']
>             if widget_mode != 'hidden':
>                 rendered = widget.render(widget_mode,  
> datastructure, **kw)
>                 rendered = rendered.strip()
>                 cell['widget_rendered'] = rendered
>                 if not widget.hidden_empty or rendered:
>                     # do not add widgets to be hidden when empty
>                     cells.append(cell)
>         render = self._getRenderMethod()
>         return render(mode=mode, datastructure=datastructure,
>                       cells=cells, **kw)
> #####################################################
>
> JoseLuis de la Rosa Triviño
> Becario Área de Sistemas de Información
> FUNDACIÓN IAVANTE
> joseluis.rosa at iavantefundacion.com
> 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:fg at nuxeo.com]
> Enviado el: jueves, 27 de abril de 2006 12:59
> Para: JoseLuis de la Rosa Triviño
> CC: cps-devel at lists.nuxeo.com
> Asunto: Re: [CPS-devel] Runtime error: Unknown mode hidden
>
> I've opened http://svn.nuxeo.org/trac/pub/ticket/1627 for this.
>
> Florent
>
> On 27 Apr 2006, at 12:48, JoseLuis de la Rosa Triviño wrote:
>
>> 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
>> joseluis.rosa at iavantefundacion.com
>> 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:fg at nuxeo.com]
>> 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
>>> joseluis.rosa at iavantefundacion.com
>>> 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   fg at nuxeo.com
>>
>>
>
> -- 
> Florent Guillaume, Nuxeo (Paris, France)   Director of R&D
> +33 1 40 33 71 59   http://nuxeo.com   fg at nuxeo.com
>
>

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




More information about the cps-devel mailing list
More information about CPS: CPS project - CVS - API

Hosting: Nuxeo: Zope service provider


This list archive provided by Nuxeo, the leaders of open source ECM. Check out the Nuxeo 5 open source, standards-based ECM project.