Vistas Básicas
Las vistas se definen en archivos XML con acciones y menús. Son instancias del modelo ir.ui.view.
Odoo es capaz de generar vistas predeterminadas para un modelo.
En la práctica, la vista predeterminada nunca es aceptable para una aplicación.
Al menos se debe organizar los campos de manera lógica.
Registros de Vista
Section titled “Registros de Vista”De forma general, las vistas son las que definen cómo se deben mostrar los registros a los usuarios finales. Se especifican en XML y se almacenan como registros, lo que significa que pueden editarse independientemente de los modelos que representan.
Son flexibles y permiten un alto nivel de personalización de las pantallas que controlan. Existen varios tipos de vistas. Cada uno representa un modo de visualización: formulario, lista, kanban y otras. Las vistas básicas generalmente comparten la estructura mínima común definida a continuación. Los marcadores de posición se indican en mayúsculas.
Definición de una vista:
<record id="ADDON.MODEL_view_TYPE" model="ir.ui.view"> <field name="name">NAME</field> <field name="model">MODEL</field> <field name="arch" type="xml"> <VIEW_TYPE> <views/> </VIEW_TYPE> </field></record>Vista de Lista
Section titled “Vista de Lista”Las vistas de lista, muestran los registros en forma de tabla.
Su elemento raíz es <list>. La versión más básica de esta vista simplemente enumera todos los campos para mostrar en la tabla (donde cada campo es una columna):
<list string="Tests"> <field name="name"/> <field name="last_seen"/></list>Vista de Formulario
Section titled “Vista de Formulario”Los formularios se utilizan para crear y editar registros individuales.
Su elemento raíz es <form>.
Se componen de elementos de estructura de alto nivel (grupos y cuadernos) y elementos interactivos (botones y campos):
<form string="Test"> <sheet> <group> <group> <field name="name"/> </group> <group> <field name="last_seen"/> </group> </group> <notebook> <page string="Description"> <field name="description"/> </page> </notebook> </sheet></form>Es posible usar etiquetas HTML normales como div y h1, así como el atributo class (Odoo proporciona algunas clases integradas) para ajustar el aspecto.
Vista de Búsqueda
Section titled “Vista de Búsqueda”Las vistas de búsqueda son ligeramente diferentes de las vistas de lista y formulario, ya que no muestran contenido.
Aunque se aplican a un modelo específico, se utilizan para filtrar el contenido de otras vistas (generalmente vistas agregadas como la Lista).
Más allá de la diferencia en el caso de uso, se definen de la misma manera.
Su elemento raíz es <search>. La versión más básica de esta vista simplemente enumera todos los campos para los que se desea un acceso directo:
<search string="Tests"> <field name="name"/> <field name="last_seen"/></search>La vista de búsqueda predeterminada generada por Odoo proporciona un acceso directo para filtrar por nombre. Es muy común agregar los campos que es probable que el usuario filtre en una vista de búsqueda personalizada.
Las vistas de búsqueda también pueden contener elementos <filter>, que actúan como conmutadores para búsquedas predefinidas.
Los filtros deben tener uno de los siguientes atributos:
- dominio: agrega el dominio dado a la búsqueda actual
- contexto: agrega algo de contexto a la búsqueda actual; usa la clave group_by para agrupar los resultados en el nombre de campo dado
Dominios de Búsqueda
Section titled “Dominios de Búsqueda”En Odoo, un dominio codifica condiciones en los registros: un dominio es una lista de criterios utilizados para seleccionar un subconjunto de los registros de un modelo. Cada criterio es una tripleta con un nombre de campo, un operador y un valor. Un registro satisface un criterio si el campo especificado cumple la condición del operador aplicado al valor.
Por ejemplo, cuando se usa en el modelo de producto, el siguiente dominio selecciona todos los servicios con un precio unitario superior a 1000:
[('product_type', '=', 'service'), ('unit_price', '>', 1000)]Por defecto, los criterios se combinan con un AND implícito, lo que significa que todos los criterios deben cumplirse para que un registro coincida con un dominio. Los operadores lógicos & (AND), | (OR) y ! (NOT) se puede utilizar para combinar criterios explícitamente. Se usan en la posición del prefijo (el operador se inserta antes de sus argumentos en lugar de entre ellos).
['|', ('product_type', '=', 'service'), '!', '&', ('unit_price', '>=', 1000), ('unit_price', '<', 2000)]