Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
-
Upload
pedro-manuel-baeza-romero -
Category
Business
-
view
289 -
download
0
Transcript of Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
- 1. Jornadas Odoo 2015 15 de junio de 2015 @PedroMBaeza [email protected] Cmo migrar un mdulo OpenERP a la nueva API de Odoo
- 2. Programacin ms sencilla, clara y corta Menos posibilidades de errores (p, ej. propagacin del context) Ms posibilidades con el framework (filtered, sorted, mapped...). Herencia mejorada. onchange y campos calculados ms intuitivos Por qu migrar a la nueva API?
- 3. Declaracin de modelos Cambios de la nueva API (I) orm.Model/osv.osv > models.Model orm.TransientModel/osv.osv_memory > models.TransientModel orm.AbstractModel > models.AbstractModel
- 4. Declaracin de campos Cambios de la nueva API (II) _columns = { 'field1': fields.boolean('Field 1'), 'field2': fields.integer('Field 2'), } _columns = { 'field1': fields.boolean('Field 1'), 'field2': fields.integer('Field 2'), } field1 = fields.Boolean('Field 1') field2 = fields.Integer('Field 2')
- 5. Valores por defecto Cambios de la nueva API (III) field1 = fields.Boolean(..., default=False) field2 = fields.Integer(..., default=2) _defaults = { 'field1': False, 'field2': 2, }
- 6. Campos calculados Cambios de la nueva API (IV) field1 = fields.Float('_function', string='Field 1', store=True) @api.depends(...) def _function(self): self.field1 = ... _columns = { 'field1': fields.function(. _function, type='float', string='Field 1', store={...}), } def get_store_ids(cr, uid, ): ... return {}
- 7. Campos related Cambios de la nueva API (V) field1 = fields.Float(. related='campo_x2x.campo_destino', string='Field 1') _columns = { 'field1': fields.related(. 'campo_x2x', 'campo_destino', string='Field 1', type='float'), }
- 8. Campos property Cambios de la nueva API (VI) field1 = fields.Float(. company_dependent=True, string='Field 1') _columns = { 'field1': fields.property(. string='Field 1', type='float'), }
- 9. Mtodos Cambios de la nueva API (VII) def write(self, cr, uid, ids, vals, context): def create(self, cr, uid, vals, context): @api.multi def write(self, vals): @api.model def create(self, vals):
- 10. onchange Cambios de la nueva API (VIII) @api.multi @api.onchange('fieldx') def onchange_fieldx(self): self.field1 = x def onchange_fieldx(self, cr, uid, ids, context): res = {} res['value'] = {'field1': x} return res
- 11. env Cambios de la nueva API (IX) def method(self): self.sudo().method2() self.with_context(x=23).method3() def method(self, cr, uid, ids, context=None): self.method2(cr, . . . SUPERUSER_ID, ids, context) context['x'] = 23 self.method3(cr, uid, ids, context)
- 12. Vistas Cambios de la nueva API (X) Sin cambios
- 13. MIGRACIN EN VIVO