Creación de botones en OpenERP (Odoo), ejemplo

Una de las bondades de OpenERP, es la reutilización de clases y funciones propias del sistema que pueden ser aprovechadas para crear objetos o subfunciones, desde un archivo simple xml, se pueden adoptar dichas funciones o métodos basados en clases predefinidas.

Un ejemplo son los botones que realizan acciones, que finalmente, realizan una operación, abren una ventana emergente con algún formulario, entre otras. Acá, un ejemplo de cómo crear un botón sencillo tomando en cuenta las funciones que ya vienen predefinidas y que pueden también, heredar clases de posición o estilos para ubicarlos en un lugar determinado.

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
    
        <record id="albaran_entrada_action" model="ir.actions.act_window">
            <field name="name">Albarán de entrada</field>            
            <field name="view_id" ref="stock.view_picking_in_tree"/>
            <field name="res_model">stock.picking.in</field>
            <field name="target">new</field>
        </record>

        <record id="sale_order_form_inherit_1" model="ir.ui.view">
            <field name="name">sale.order.form.inherit_1</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_order_form"/>
            <field name="arch" type="xml">
                <data>
                    <xpath expr="//field[@name='name']" position="before">
                        <button name="%(albaran_entrada_action)d" string="Albarán de entrada" type="action" class="oe_right"/>
                    </xpath>
                </data>
            </field>
        </record>

    </data>
</openerp>

En el ejemplo, se muestra una vista heredada de un formulario que corresponde al módulo de ventas, y se agrega un botón llamado %(albaran_entrada_action)d.

El nombre corresponde a un valor que registra OpenERP de manera numérica, en el código se refleja así, pero en la vista finalmente queda es un número correlativo exclusivo de la instalación del sistema.

El botón visualmente, estará ubicado antes del campo llamado name del formulario y con la clase de CSS, irá posicionado del lado derecho.

El record de la acción, abrirá una ventana nueva con una vista de tipo tree con información de Albaranes de entrada.

Advertisements

About felixurbina

Humano con todos los defectos y virtudes que vienen de fábrica.
This entry was posted in Odoo, OpenERP. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s