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
Hosting: Nuxeo: Zope service provider