Skip to content

Instantly share code, notes, and snippets.

@foxcarlos
Last active August 27, 2020 20:58
Show Gist options
  • Save foxcarlos/260f2ac84ca28f97dd6c122291053514 to your computer and use it in GitHub Desktop.
Save foxcarlos/260f2ac84ca28f97dd6c122291053514 to your computer and use it in GitHub Desktop.
Ejemplo para luengo
class MyEmployee(model.Models):
_inherit = 'hr.employee
_name = 'MiModel'
primer_nombre = fields.Char()
segundo_nombre = fields.Char()
'''
Esto lo que hace es que crea una tabla nueva llamada MiModel en la base de datos
con todos los campos que tiene hr.employee y adicional le agrega los campos
primer y segundo nombre'''
'''Para este model tienes que crear una vista nueva con todos los campos de hr.employee mas los nuevos campos que
acabas de agregar'''
class MyEmployee(model.Models):
_inherit = 'hr.employee
primer_nombre = fields.Char()
segundo_nombre = fields.Char()
'''
Esto lo que hace es que le agrega al model employee los campos
primer y segundo nombre, es como si lo sobre escribiera'''
'''Para este model solo tienes que crear una vista que herede la vista de employee, y con xpath le dices
donde quieres que posicione esos 2 campos nuevos, no hace falta que eacribas de nuevo los campos originales
porque lo que estas haciendo es sobreescribiendo la vista original de Odoo'''
class Contacto(models.Model):
_name = 'user'
_inherits = {'res.partner': 'partner_id'}
partner_id = fields.Many2one('res.partner')
fecha_nac = fields.date()
'''Este ejemplo es menos comun pero sirve para cuando quieres copiarte toda la estructura de un model\
de Odoo pero al mismo tiempo que ambas esten relacionadas por un ID, voy a colocar como ejemplo cmo lo usa \
Odoo internamente, Odoo usa el model res.partner para guardar datos de persona contacto, todo eso como
nombre, apellido, telefono, direccion, ciudad, estado, pais correo, pero adicionalmente necesita llevar
los registro de las personas que se crean un usuario dentro de la plataforma para iniciar sesion,
para hacer esto lo que hace es usar la herencia delegada, crea un model llamada User con la misma estructura de
res.partner y los asocia a ambos por el mismo ID , entonces tenemos dos models con los mismos campos asociados
por un mismo ID de res.partner, asi cuando estas dentro del model User podrias saber todos los datos que
tiene guardado en res.partner usando algo como User.res_partner_id.name
tambien puedes agregarle a res.partner el campo de user_ids para que puedas hacer una consulta inversa dentro
de res.partner y buscar todos los res.partner qe tienen asociado un usuario
res.partner.user_ids
'''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment