Desarrollo de Módulos Odoo: Vistas¶
Odoo puede definir unas vistas simples por defecto, según se explica en esta página. En el siguiente capítulo se verá la adaptación de las vistas a cada caso.
Las vistas
, action
y menus
se definen en el mismo fichero XML.
action y menus son registros normales de la BD.
Es el patrón de diseño Menu > Action > View
Cuando el usuario accede a un registro, navega por menus
de forma que el más profundo es un Action
que lanza la apertura de una lista de registros.
Este fichero xml se añade al directorio views y a la lista de datos del fichero __manifest__.py
En Odoo, las vistas son esencialmente archivos XML que definen cómo se verá un registro o un conjunto de registros en la aplicación. Puedes desarrollar una vista en Odoo siguiendo los siguientes pasos:
- Crear un archivo XML en el directorio de vistas de tu módulo.
- Definir la estructura de la vista usando la sintaxis XML.
- Asignar la vista a un modelo específico mediante el atributo model.
- Definir el tipo de vista utilizando el atributo type, que puede ser * formulario, lista, calendario, etc.
- Utilizar los elementos XML y atributos para especificar la estructura y el comportamiento de la vista. Ejemplo de una vista de formulario:
<record model="your.model" id="view_your_model_form">
<field name="name">Your Model Form</field>
<field name="model">your.model</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form>
<field name="field_1"/>
<field name="field_2"/>
</form>
</field>
</record>
Actions¶
Para consultar la referencia de Action.
Las acciones se disparan de tres modos:
1. Pulsando en cualquier menú
2. Pulsando un botón de la vista conectado a una Action
3. como acciones contextuales del objeto.
En este capítulo vemos el primer caso.
Una acción básica para test.model
sería:
<record id="test_model_action" model="ir.actions.act_window">
<field name="name">Test action</field>
<field name="res_model">test.model</field>
<field name="view_mode">tree,form</field>
</record>
Se puede consultar un ejemplo de una acción simple aquí
Menus¶
Para la declaración de un menu ir.ui.menu
y conectarlo a la acción correspondiente utilizamos :
<menuitem id="test_model_menu_action" action="test_model_action"/>
test_model_menu_action
se conecta a la acción test_model_action
y la acción al modelo test.model
Los menús se organizan en tres niveles:1. Menú raíz, que se muestra en el App Switcher (un dropbox) 2. Primer nivel de menús, se muestra en la barra superior 3. Los menús de acción
La forma más fácil es usar un fichero xml:
<menuitem id="test_menu_root" name="Test">
<menuitem id="test_first_level_menu" name="First Level">
<menuitem id="test_model_menu_action" action="test_model_action"/>
</menuitem>
</menuitem>
Campos, Atributos y Vistas.¶
El resultado final de este apartado deber ser:
Se añaden al modelo del tutorios estate.property los campos reservador active y state
some fields have a default value some fields are read-only some fields are not copied when duplicating the record In our real estate business case, we would like the following:
The selling price should be read-only (it will be automatically filled in later) The availability date and the selling price should not be copied when duplicating a record The default number of bedrooms should be 2 The default availability date should be in 3 months