es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Extendiendo la vista de árbol de Odoo v13 debajo del campo tree_view_ref contexto.

Estoy tratando de agregar un campo a una vista de ventas. La vista es la “stock.picking.form” que se encuentra en la página de Operaciones detalladas. Esa página renderiza el campo “move_line_ids_without_package” usando el contexto “tree_view_ref” de “stock.view_stock_move_line_detailed_operation_tree”.

El campo que intento agregar al árbol es un simple campo booleano, el campo llena los valores correctos y no veo ningún problema allí.

class StockMoveLine(models.Model):
    _inherit = 'stock.move.line'

    all_done = fields.Boolean(string="Check", compute="_check_done")

@api.depends_context('product_uom_qty', 'qty_done')    
def _check_done(self):
    for move_line in self:            
        if move_line.product_uom_qty == 0 and move_line.qty_done != 0:                
            move_line.all_done = True            
        else:                
            move_line.all_done = False

Extendí correctamente la vista, la veo en la lista de vistas e incluso en las vistas heredadas de la vista utilizada en los campos, contexto “tree_view_ref”.

<?xml version="1.0" encoding="utf-8"?>
<odoo>
  <record id="stock_move_line_tree_view_inherit" model="ir.ui.view">
     <field name="name">stock.move.line.tree.inherit</field>
     <field name="model">stock.move.line</field>
     <field name="inherit_id" ref="stock.view_stock_move_line_detailed_operation_tree"></field>
     <field name="arch" type="xml">
      <xpath expr="//field[@name='product_id']" position="before">
         <field name="all_done" readonly="1"></field>
      </xpath>
     </field>
  </record>
</odoo>

Pero a pesar de todo eso, no veo que se agregue el campo a la vista. Odoo no está arrojando errores ni nada por el estilo.

Aquí en la página de Operaciones detalladas, antes de la columna de Producto, deseo agregar mi campo de verificación booleano:

Aquí en la página de Operaciones detalladas, antes de la columna de Producto, deseo agregar mi campo de verificación booleano

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para agregar un campo Booleano a una vista de Ventas, puede extender la vista utilizando un registro XML con las definiciones de campo apropiadas. En este caso, la vista que se está extendiendo es “stock.picking.form” debajo de la página de Operaciones Detalladas, y representa el campo “move_line_ids_without_package” utilizando el contexto “tree_view_ref” de “stock.view_stock_move_line_detailed_operation_tree”. El campo que se está agregando es un campo Booleano simple llamado “all_done”, y se proporciona el código para calcular su valor.

    Para extender la vista, cree un registro XML con un ID único y especifique el modelo al que se aplica, así como la vista que se hereda. En este caso, se asigna el ID “stock_move_line_tree_view_inherit”, y el modelo es “stock.move.line”. La vista que se hereda es “stock.view_stock_move_line_detailed_operation_tree”. Dentro del registro, defina la arquitectura (o diseño) de la vista, y use una expresión XPath para especificar dónde se debe agregar el nuevo campo. En este caso, debe agregarse antes del campo “product_id”.

    Una vez que se haya creado el registro XML y se haya agregado al manifiesto de su módulo, debería poder ver el campo en la vista de Ventas. Si no aparece, verifique que el registro se haya cargado correctamente y que no se estén lanzando errores por parte de Odoo.

Comments are closed.