PROGRAMACIÓN ODOO: HERENCIA de vistas 🟢 XML | Modificar vistas existentes | Xpath e inherit_id Odoo

PROGRAMACIÓN ODOO: HERENCIA de vistas 🟢 XML | Modificar vistas existentes | Xpath e inherit_id Odoo

Introducción a la Herencia en Odoo

Presentación del Tema

  • Josué Bo introduce el tema de herencias en Odoo, enfocándose en las vistas XML.
  • Se menciona que se revisarán puntos importantes antes de profundizar en la herencia.

Principios Básicos de Herencia

  • Es fundamental no modificar el código estándar; existen mecanismos para realizar herencias sin sobrescribir vistas o modelos existentes.
  • Las herencias permiten cambiar, agregar o eliminar funcionalidades a nivel de modelo, vista o lógica de negocio.

Configuración del Archivo Manifest

Dependencias en el Manifest

  • Se debe indicar en el archivo manifest las aplicaciones o módulos que contienen los modelos heredados.
  • Ejemplo: una aplicación puede depender de otras dos aplicaciones, como "account budget" y "account accountant".

Herencia de Vistas XML

Proceso para Heredar Vistas

  • Para heredar una vista, se utiliza el tag <inherit> donde se indica el ID de la vista que se desea heredar.
  • Activar modo debug es esencial para obtener el ID externo necesario para la referencia.

Pasos Detallados

  • Una vez activado el modo debug, se selecciona la opción "vista de edición" para obtener información sobre la vista a heredar.
  • Es importante identificar correctamente si se quiere heredar una vista tipo formulario o lista.

Identificación y Modificación de Campos

Selección del Campo Correcto

  • Al abrir la vista deseada, es crucial tener activo el modo debug para acceder a las opciones correctas.
  • La identificación precisa del campo permite decidir dónde colocar nuevos elementos dentro del formulario heredado.

Uso de Tags Expansibles

  • Los elementos <xpath> permiten seleccionar y alterar contenido dentro del formulario padre.

¿Cómo ubicar elementos en vistas heredadas?

Importancia de la declaración de campos

  • Es crucial que el campo esté declarado en la vista que se desea heredar; de lo contrario, se generará un error al intentar localizarlo.
  • Si un campo no está declarado, la expresión no podrá encontrar el elemento y resultará en un error.

Localización de campos específicos

  • Para ubicar un campo específico, se utiliza la sintaxis //field name='descripción', donde 'descripción' es el nombre del campo original.
  • En el caso del campo invoice target, se debe usar //field[name='invoice target'] para su localización.

Ubicación de elementos tipo página

  • Para localizar un elemento expandido como una página, se usa //page[name='nombre_página'].
  • Al agregar una nueva página, es necesario conocer cómo está declarada; por ejemplo, si se llama 'miembros', se utilizaría esa referencia.

Agregar botones y otros elementos

  • La sintaxis para ubicar un botón es diferente: //button[name='confirmar'], donde 'confirmar' es el nombre del botón.
  • Se debe tener cuidado con los tipos de elementos (field vs page vs button), ya que cada uno tiene su propia forma de ser referenciado.

Edición y herencia de vistas

  • En la vista de edición XML, se puede ver claramente cómo están estructurados los elementos y facilitar su ubicación.
  • Al querer agregar nuevos elementos a una vista existente, hay que identificar correctamente los nombres y estructuras existentes.

Operaciones sobre elementos encontrados

  • Existen diferentes operaciones para manipular los elementos encontrados:
  • insight: agrega un nuevo elemento dentro del encontrado.
  • replaced: reemplaza el elemento encontrado con otro especificado.
  • before/after: coloca un nuevo elemento antes o después del encontrado respectivamente.
  • attributes: permite modificar atributos como visibilidad.

¿Cómo heredar vistas en un modelo XML?

Declaración de un modelo XML

  • Se presenta un código similar a la declaración de un XML desde cero para un modelo, donde se establece un identificador (ID) para una vista que puede ser heredada por otros desarrolladores.
  • Es necesario asignar el nombre del modelo de la pista que se desea heredar y especificar el ID en el campo correspondiente. Esto permite ubicar correctamente la pista deseada.
  • Se menciona la posibilidad de agregar nuevos campos en la vista, posicionándolos después del campo "descripción". Esto se logra utilizando expresiones como expand y exp.
Video description

En este video les enseño los conceptos básicos que se requieren para realizar una herencia de una vista XML en Odoo. Se enseña el uso de inherit_id, cómo obtener el Id externo de una vista, el uso de xpath y puntos clave para heredar una vista en Odoo. Modificación y personalización de vistas existentes con Inherit views o herencia de vistas XML. 🌐 Hosting que utilizo: linode.gvw92c.net/RyqgXv 🎤 El micrófono que utilizo: https://amzn.to/3NK26Qw ☕️ Apoya a este canal con un Café: https://ko-fi.com/josuheuh 00:00 Introducción Herencias Odoo en vistas XML 00:30 Puntos a tomar en cuenta al heredar vistas en Odoo 01:31 Sección depends en archivo __manifest__.py 02:29 Herencia de vistas XML con inherit_id 03:27 Vista de edición: Obtener el id externo de la vista a heredar 06:43 ¿Para qué sirven los tags xpath y expr? 08:38 ¿Cómo utilizar xpath y expr para ubicar elementos fields, page o button? 12:02 Identificar con xpath el elemento field, page o button dentro del XML de la vista 14:29 Atributo position: inside, replace, before, after y attributes 16:40 Ejemplo código XML de vista heredada