xpath invalid predicate

390 views
Skip to first unread message

Marcelo Zunino

unread,
May 22, 2015, 1:53:31 AM5/22/15
to openerp-s...@googlegroups.com

Hola,

Hace unas cuantas horas que intento depurar este error en una view heredada.
En los todos verificadores on line que he probado funciona bien. Quizá entre
muchos ojos... Toda sugerencia es muy bienvenida.
Es la versión 6.1 Abajo, los detalles.

Gracias de antemano.
Un saludo,
Marcelo.

El view madre (o padre) es "purchase_order_line_form":

       <record id="purchase_order_line_form" model="ir.ui.view">
            <field name="name">purchase.order.line.form</field>
            <field name="model">purchase.order.line</field>
            <field name="type">form</field>
            <field name="arch" type="xml">

                <form string="Purchase Order Line">
                    <notebook colspan="4">
                        <page string="Order Line">
                            <field name="product_id" colspan="4" ....



y la herencia:

                <xpath expr="//form/notebook/page[@string='Order Line']/field[@name='product_id']" position="replace">
                    <field name="product_id"
                           colspan="4"
                           on_change="onchange_product_id(parent.pricelist_id, .... />
                                                             ....
                </xpath>

                           


El mensaje de error del popup es:
     
            XPathEvalError: Invalid predicate

Y ésta es la parte final del trace:

  File "/srv/runver/server/openerp/osv/orm.py", line 1992, in locate
    nodes = source.xpath(spec.get('expr'))
  File "lxml.etree.pyx", line 1498, in lxml.etree._Element.xpath (src/lxml/lxml.etree.c:52268)
  File "xpath.pxi", line 307, in lxml.etree.XPathElementEvaluator.__call__ (src/lxml/lxml.etree.c:152309)
  File "xpath.pxi", line 227, in lxml.etree._XPathEvaluatorBase._handle_result (src/lxml/lxml.etree.c:151282)
  File "xpath.pxi", line 212, in lxml.etree._XPathEvaluatorBase._raise_eval_error (src/lxml/lxml.etree.c:151081)
  XPathEvalError: Invalid predicate

Pedro Manuel Baeza Romero

unread,
May 22, 2015, 2:59:37 AM5/22/15
to openerp-s...@googlegroups.com
Buenas, Marcelo,

Varios apuntes:
  • Con simplemente <xpath expr="//field[@name='product_id']" position="... o <field name="product_id" position="..." ya te funcionaría sin necesidad de expresiones tan complejas.
  • No utilices position="replace", ya que es una opción muy destructiva. Utiliza position="attributes" para modificar el atributo que corresponda.

Un saludo.


--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Marcelo Zunino

unread,
May 22, 2015, 10:50:44 AM5/22/15
to openerp-s...@googlegroups.com


El 22/05/15 a las 03:59, Pedro Manuel Baeza Romero escribió:
Buenas, Marcelo,

Varios apuntes:
  • Con simplemente <xpath expr="//field[@name='product_id']" position="... o <field name="product_id" position="..." ya te funcionaría sin necesidad de expresiones tan complejas.
  • No utilices position="replace", ya que es una opción muy destructiva. Utiliza position="attributes" para modificar el atributo que corresponda.

Un saludo.


Pedro Manuel,

Gracias por tu pronta respuesta.
Con <field name="product_id" position="..." fue suficiente.

Al borde de los nervios logró ponerme el asunto. Llegué a dudar de algo 'suelto' en el pre-parseo en la 6.1, las expresiones son equivalentes, una funciona, la otra no.

Finalmente sentí esa "turbación del ánimo, que suele encender el color del rostro, ocasionada por alguna falta cometida, o por alguna acción deshonrosa y humillante..." -Rae, 22.ª edición- al advertir que mi 'update_xml': apuntaba a un view diferente del editado :(

El tip s/position="replace"/position="attributes/ es muy bueno.
Gracias, de nuevo.

Marcelo.

          "Voy por el mundo dando charlas porque ya estoy viejo para programar"
            rms - 11/2008

Reply all
Reply to author
Forward
0 new messages