Hello,
CPS 3.4 returns an error like this when there's no field specified in the "Fields" property of a widget.
######################################################################
File "/root/instances/zope2.9/innovaDes/Products/CPSSchemas/BasicWidgets.py", line 1133, in prepare
datastructure[self.getWidgetId()] = bool(datamodel[self.fields[0]])
IndexError: tuple index out of range
> /root/instances/zope2.9/innovaDes/Products/CPSSchemas/BasicWidgets.py(1133)prepare()
-> datastructure[self.getWidgetId()] = bool(datamodel[self.fields[0]])
######################################################################
I propose to control the exception and raise a message, the method (for CPSBooleanWidget) would be:
######################################################################
def prepare(self, datastructure, **kw):
"""Prepare datastructure from datamodel."""
datamodel = datastructure.getDataModel()
if len(self.fields) > 0:
datastructure[self.getWidgetId()] = bool(datamodel[self.fields[0]])
else:
raise RuntimeError("You should specify at least one field for the widget %s" % self.getWidgetId())
######################################################################
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.nuxeo.com/pipermail/cps-devel/attachments/20060428/446259c8/attachment.html
Hosting: Nuxeo: Zope service provider