On Thu, Dec 11, 2008 at 3:01 PM, fa sanchez cabo <[email protected]> wrote: > > Hola chicos a ver si me podeis ayudar con esto. > Yo tengo 3 cpt que se controlan con un único controller validator.El caso es > que los 3 son casi iguales y los tres tienen 3 botones iguales,uno para > pasar a la siguiente pantalla,otro para volver a la anterior y otro para > borrar los valores que se hayan introducido en los campos del formulario. > En los 2 primeros cpt me funciona todo perfectamente pero en el tercero me > salta el siguiente error cuando pulso el boton de volver o el de limpiar los > campos. > Los tres cpt tienen asignados las acciones y el validador bien. > La forma de definir los botones en los 3 cpt es: > > ----------------------------------------------------------------------------------- > <div class="formControls"> > <input class="context" type="submit" tabindex="" > name="form.button.Submit" value="Siguiente" > i18n:attributes="value" tal:attributes="tabindex > tabindex/next;" /> > <input class="context" type="submit" tabindex="" > name="botonVolver" value="Volver" > i18n:attributes="value" tal:attributes="tabindex > tabindex/next;" /> > <input class="context" type="submit" tabindex="" > name="botonLimpiar" value="Borrar campos" > i18n:attributes="value" tal:attributes="tabindex > tabindex/next;" /> > </div> > --------------------------------------------------------------------------------------- > > La forma de controlarlos en el controller validator es : > -------------------------------------------------------------------------------------- > if volver: > limpiarCampos(vieneDe) > > context.REQUEST.RESPONSE.redirect('./SMALLPOL/atestados/form_ActaAccidenteLaboral') > > elif borrar: > limpiarCampos(vieneDe) > if vieneDe=='implicados1': > > context.REQUEST.RESPONSE.redirect('./SMALLPOL/atestados/implicadosAcLab1') > if vieneDe=='implicados2': > > context.REQUEST.RESPONSE.redirect('./SMALLPOL/atestados/implicadosAcLab2') > if vieneDe=='implicados3': > > context.REQUEST.RESPONSE.redirect('./SMALLPOL/atestados/implicadosAcLab3') > > else: > --------------------------------------------------------------------------------------------------- > Y el error que me salta,ahora si,es el siguiente: > ------------------------------------------------------------------------------------------------ > Time 2008/12/11 17:36:36.687 GMT+1 > User Name (User Id) admin (admin) > Request URL http://localhost/SMALLPOL/atestados/implicadosAcLab3 > Exception Type ValueError > Exception Value No next action found for > implicadosAcLab3.success.Folder.None Metadata actions: ZMI actions: > implicadosAcLab3.failure.None.None=traverse_to:string:implicadosAcLab2 > implicadosAcLab3.sucess.None.None=traverse_to:string:causasAcLab > Traceback (innermost last): > > Module ZPublisher.Publish, line 119, in publish > Module ZPublisher.mapply, line 88, in mapply > Module ZPublisher.Publish, line 42, in call_object > Module Products.CMFFormController.ControllerPageTemplate, line 74, in > __call__ > Module Products.CMFFormController.BaseControllerPageTemplate, line 28, in > _call > Module Products.CMFFormController.ControllerBase, line 228, in getNext > __traceback_info__: ['id = implicadosAcLab3', 'status = success', > 'button=None', 'errors={}', 'context=<ATFolder at atestados>', 'kwargs={}', > 'next_action=None', ''] > > ValueError: No next action found for implicadosAcLab3.success.Folder.None > Metadata actions: ZMI actions: > implicadosAcLab3.failure.None.None=traverse_to:string:implicadosAcLab2 > implicadosAcLab3.sucess.None.None=traverse_to:string:causasAcLab > ------------------------------------------------------------------------------------------------------------------------------- > > GRACIAS CHICOS Y A VER SI ME PODEIS AYUDAR,CHAO. > > ________________________________ > Descárgate gratis el nuevo Windows Live Messenger > _______________________________________________ > Plone-ConoSur mailing list > [email protected] > http://lists.plone.org/mailman/listinfo/plone-conosur > >
Me parece que el problema viene mas de la mano de los submits que de los validadores. Yo he hecho muy pocos formularios pero hay un par de cosas que veo y por favor corrijame alguien si estoy MFT: 1) fijate que en el nombre del submit principal dice "form.button.Submit", eso te indica el nombre del metodo que se ejecuta al darle submit. En los otros botones tenes nombres que no sugieren este comportamiento... fijate si por ahi viene la mano 2) Realmente necesitas hacer un formulario "por partes?" no podes meter todo en uno solo con un submit abajo ? 3) mas relacionado con el traceback que te tiró, parece ser que no sabe para donde seguir... fijate que tengas bien definidas, en el archivo .metadata del formulario o del validador, las acciones siguientes de acuerdo a si los resultados fueron exitosos o si algo fallo. 4) Creo que no es buena practica (o no se si es buena practica o no, a mi personalmente me parece feo) hacer formularios de a partes pasando el contenido de formulario a formulario... en cada uno que pasas, tenes que asegurarte de poner inputs hidden con el contenido del formulario anterior, y es realmente engorroso... que pasa si haces todo en un solo gran formulario, y lo "Separas" en 3 usando javascript. De esa forma, a nivel HTML es un solo formulario, un solo submit, sin inputs hidden, y un solo validador. Bueno, espero que se haya entendido. Saludos y suerte con eso. Franco -- "I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones." -- Albert Einstein -- "No se vive celebrando victorias, sino superando derrotas." -- Linux User #456432 --------- _______________________________________________ Plone-ConoSur mailing list [email protected] http://lists.plone.org/mailman/listinfo/plone-conosur
