Saltar a contenido

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 menusse 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 menusde forma que el más profundo es un Actionque 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:

view.xml
<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>
Para que una nueva vista esté disponible debe reiniciarse el servidor odoo

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>
* id is an external identifier. It can be used to refer to the record (without knowing its in-database identifier). * model has a fixed value of ir.actions.act_window (Window Actions (ir.actions.act_window)). * name is the name of the action. * res_model is the model which the action applies to. * view_mode are the views that will be available; in this case they are the list (tree) and form views. We’ll see later that there can be other view modes.

Se puede consultar un ejemplo de una acción simple aquí

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"/>
El menú 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

m1
m2

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>
Observar que el nombre del tercer menú es el de la acción.

Campos, Atributos y Vistas.

El resultado final de este apartado deber ser:
atr

Se añaden al modelo del tutorios estate.property los campos reservador active y state
So far we have only used the generic view for our real estate property advertisements, but in most cases we want to fine tune the view. There are many fine-tunings possible in Odoo, but usually the first step is to make sure that:

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

Nuevos atributos

Valores por defecto

Campos reservados

Tree views

Calendars

Search views

Gantt

Graph views

Kanben