Creación de vistas y tablas nuevas en OpenERP (Odoo), ejemplo

Normalmente para crear una tabla y vistas que no existen en OpenERP, se debe crear un archivo .py parecido al siguiente:

# -*- coding: utf-8 -*-

from openerp.osv import fields, osv

class usuario_estudiante(osv.Model):

    _name = 'usuario.estudiante'
    _description = 'Tabla de usuarios de tipo estudiante'
    _columns = {
        'name': fields.char('Nombre', size=250),
        'direccion': fields.text('Direccion'),
        'email': fields.char('Email'),
        'materias_ids': fields.one2many('usuario.materia', 'estudiante_id',
            'Materias')
    }

usuario_estudiante()

class usuario_materia(osv.Model):

    _name = 'usuario.materia'
    _description = 'Tabla de materias de estudiantes'
    _columns = {
        'name': fields.char('Materia'),
        'descripcion': fields.text('Descripcion'),
        'nota': fields.float('Nota', digits=(2, 2)),
        'estudiante_id': fields.many2one('usuario.estudiante', 'Estudiante')
    }

usuario_materia()

En donde el campo materia_id se enlaza al campo estudiante_ids y viceversa, así la tabla usuario.estudiante tendrá asociada la tabla usuario.materia, que significa que cuando se lee el registro de un estudiante se leerá su tabla asociada de materias.

Por otro lado, una de las formas más completas para la vista sería en un archivo xml parecido al siguiente:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        
        <!-- Vista tree -->
        <record id="estudiante_view_tree" model="ir.ui.view">
            <field name="name">estudiante.view.tree</field>
            <field name="model">usuario.estudiante</field>
            <field name="arch" type="xml">
                <tree string="Estudiantes">
                    <field name="name" string="Estudiante"/>
                    <field name="direccion" string="Dirección"/>
                    <field name="email" string="Dirección"/>
                </tree>
            </field>
        </record>
        
        <!-- Vista form -->
        <record id="estudiante_view_form" model="ir.ui.view">
            <field name="name">estudiante.view.form</field>
            <field name="model">usuario.estudiante</field>
            <field name="arch" type="xml">
                <form string="Estudiantes" version="7.0">
                    <sheet>
                        <group col="2">
                            <group>
                                <field name="name" string="Estudiante"/>
                                <field name="direccion" string="Dirección"/>
                                <field name="email" string="Dirección"/>
                            </group>
                            <group />
                        </group>
                        <notebook>
                            <page string="Materias">
                                <field name="materias_ids">
                                    <tree>
                                        <field name="name" string="Materia"/>
                                        <field name="descripcion" string="Descripción"/>
                                        <field name="nota" string="Calificación"/>
                                    </tree>
                                </field>
                            </page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>
    
    </data>
</openerp>
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.

One Response to Creación de vistas y tablas nuevas en OpenERP (Odoo), ejemplo

  1. deyocamp says:

    Excelente felixurbina, ahora lo reviso a ver como me funciona. Muchas gracias por la ayuda.

    Una pregunta, si no es mucha molestia. Vos sabes como modificar el detalle de un correo enviado de factura. Por ejemplo: Enviado por Soluciones Tecnologicas. usando Odoo acerca de Pedido de venta QU0197. Así le llega al destinatario.

    Gracias por la ayuda.

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