On Thu, Dec 11, 2008 at 9:14 PM, Franco Pellegrini <[email protected]> wrote: > 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 > --------- >
Me olvidaba... probaste el producto PloneFormGen ? es muy completo para hacer formularios y tiene hecha ya toda la parte de validadores y eso... por ahi te salvas de desarrollar algo ya existente. saludos -- "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
