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.

Turn any video into a summary like this

YouTube links, meetings, lectures — with transcripts, search, and chat.

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