Crear listas de campos en archivo xml para exportar a archivos CSV en OpenERP (Odoo)

Desde una vista tree o vista lista, se pueden realizar ciertas operaciones administrativas de los datos, una de estas operaciones es exportar campos hacia un archivo csv, para crear catálogos estándares u otros fines.

La gestión de exportación tiene la opción de guardar listas predefinidas con campos establecidos que se desean exportar, generalmente esta configuración se realiza de manera funcional en el OpenERP, es decir, desde una interfaz de usuario. Parecida a la siguiente imagen:

exportar_lista_openerp

Una desventaja de hacerlo de esta manera, es que podemos perder el registro de nuestra lista para exportar que se deja predeterminada.

Una manera sólida de crear estas listas, es creando un archivo .xml con las referencias de la tabla y los campos que se desean exportar, este .xml se inserta en el archivo __openerp__.py del módulo donde queremos establecer las configuraciones de las listas de campos para exportar.

Si se desean exportar los campos:

  • Nombre
  • Puede ser vendido
  • Puede ser comprado

De la tabla product.product, el contenido de nuestro archivo ejemplo lista_campos_producto_export.xml debería tener algo similar a lo siguiente:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">

	    <record id="productos" model="ir.exports">
		    <field name="name">Productos</field>
		    <field name="resource">product.product</field>
	    </record>
	    
	    <record id="campos_productos_name" model="ir.exports.line">
		    <field name="name">name</field>
		    <field name="export_id" model="ir.exports" ref="productos"/>
	    </record>
	    
	    <record id="campos_productos_sale" model="ir.exports.line">
		    <field name="name">sale_ok</field>
		    <field name="export_id" model="ir.exports" ref="productos"/>
	    </record>
	    
	    <record id="campos_productos_purchase" model="ir.exports.line">
		    <field name="name">purchase_ok</field>
		    <field name="export_id" model="ir.exports" ref="productos"/>
	    </record>
	    
    </data>
</openerp>

La tabla que guarda los nombres de las listas para exportar es ir.exports, y la tabla que guarda el registro de los campos asociados a cada lista es ir.exports.line.

Añadimos el archivo en el __openerp__.py algo parecido a lo siguiente:

# -*- coding: utf-8 -*-
{
    'name': 'Satelite_Guayana',
    'version': '0.1',
    'author': 'Satelite Guayana',
    'description': 'Modulo de Productos',
    'summary': 'Personalizacion de funciones',
    'category': 'Customization',
    'website': 'https://sateliteguayana.wordpress.com',
    'depends': [
        'base'
    ],
    'data': [
        'lista_campos_producto_export.xml',
    ],    
    'demo': [
    ],
    'test': [
    ],
    'installable': True,
    'application': True,
    'auto_install': True,
    'images': [
    ],
}
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.

2 Responses to Crear listas de campos en archivo xml para exportar a archivos CSV en OpenERP (Odoo)

  1. Francisco says:

    Hola Felix.
    ¿Hay alguna manera de hacer lo mismo para importar datos a Odoo v8?

    Gracias.
    Saludos.

    • felixurbina says:

      Qué tal Francisco, pues es muy parecida a esta forma, realizando un .xml particular y cargarlos como datos en determinadas tablas, creo que este caso no lo he publicado en el blog. Veré si me da tiempo mañana de realizar un post referente a eso. Saludos.

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