SlideShare una empresa de Scribd logo
Cómo hacer un módulo Odoo
compatible con todo
Jornadas Odoo 2016
@PedroMBaeza
pedro.baeza@tecnativa.com
●
Al instalar un módulo, una cosa deja de funcionar
●
Al desinstalar un módulo de “prueba”, las cosas no se quedan
como estaban.
●
Al hacer una actualización completa (--update=all), saltan
errores por todas partes. “Solución”: no actualizar
completamente nunca.
●
Al actualizar, se pierden cosas que se habían puesto.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Situaciones comunes
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Problema
En el 99% de los casos, no se ha respetado
la herencia
●
Utilizar módulos de calidad contrastada (OCA). No todos
pueden garantizar 100% esa compatibilidad, pero la mayoría sí.
Si no la tiene, los módulos OCA lo indican en el README
●
Técnicas de programación
●
Evitar pruebas en BDs reales.
●
Técnicas de programación para desarrollos propios.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
¿Cómo solucionarlo?
●
Utilizar las posibilidades de la nueva API:
– Declarar el campo de nuevo (nombre técnico y tipo), pero añadiendo sólo los
atributos que cambian:
field = fields.Type(readonly=True) # Hacer readonly
– selection_add para añadir valores a un campo selection:
selection_field = fields.Selection(selection_add=[('new_value', 'New value')])
– Campos compute entre comillas, y sólo habrá que redefinir el método (pero
llamando al super):
computed_field = fields.Float(compute=”_compute_computed_field”)
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en modelos
●
Herencia en métodos:
– Nunca sobreescribir un método y no llamar al super.
– TÉCNICAS:
●
Rescatar datos del valor devuelto y reprocesar el/los registros.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en modelos (II)
SUPER
def method(self):
record = self.env[‘model’].create({…})
return record.id
SOBREESCRITURA
def method(self):
record_id = super(Class, self).method()
record = self.env[‘model’].browse(record_id)
record.field = “...”
return record_id
●
Herencia en métodos:
– TÉCNICAS:
●
Guardar "instantánea" antes y después de llamar al super.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en modelos (II)
SUPER
def method(self):
record1 = self.env[‘model’].create({…})
record2 = self.env[‘model’].create({…})
SOBREESCRITURA
def method(self):
old_records = self.env[‘model’].search([])
super(Class, self).method()
current_records = self.env[‘model’].search([])
new_records = current_records - old_records
# process new_records
●
Herencia en métodos:
– TÉCNICAS:
●
Técnicas creativas.
https://github.com/odoomrp/odoomrp-wip/blob/0b55ab14925322b3e167f
ef24e7aa9d5b38fddb5/procurement_purchase_no_grouping/models/procu
rement_order.py#L13
https://github.com/odoomrp/odoomrp-wip/blob/0b55ab14925322b3e167f
ef24e7aa9d5b38fddb5/procurement_purchase_no_grouping/models/purch
ase_order.py#L17
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en modelos (III)
●
No hacer position=”replace”
– Si no se vuelve a añadir el campo
●
puede haber error porque otro elemento se posicione en base a él.
– Si se vuelve a añadir el campo en otro sitio:
●
Se pierden los atributos que se hayan modificado por herencia…
●
…y además se pierden los cambios que se puedan hacer en el campo original en
actualizaciones.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en vistas
●
No hacer position=”replace”
– ¿qué hacer entonces?
●
Si solo se quiere ocultar el campo, hacer position=”attributes”, y luego <attribute
name=”invisible”>1</attribute>
●
Si se quiere mover de sitio…
– No lo hagas.
– No, en serio, no lo hagas. Odoo no siempre tiene la mejor disposición según qué sectores,
pero tiene unos criterios razonables. Convencer al cliente es la mejor opción.
– Si no hay manera, la manera de hacerlo es: A) crear campo related al campo que quieres
hacer el replace; B) ocultar el campo original; C) Insertar el campo related. Aún así,
perderás las posibles propiedades heredadas.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en vistas (II)
●
De nuevo, no hacer position=”replace” (o bueno, no indiscriminadamente)
– Es común que otros módulos añadan datos a un informe estándar. Ejemplo:
https://github.com/OCA/bank-payment/blob/9dc92beb4c2f07dbf189487875f0405
385cb762e/account_payment_partner/views/report_invoice.xml#L5
– Si se tiene que cambiar mucho el formato, mejor hacer un replace de la plantilla
entera, que andar cambiando múltiples cosas. No se obtendrán los campos de los
módulos adicionales, pero por lo menos no dará error.
<template id="report_invoice_inherit" inherit_id="account.report_invoice">
<xpath expr="//t[@t-raw]" position="replace">
<t t-raw="translate_doc(…, 'custom.report_invoice_document_custom')"/>
</xpath>
</template>
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en informes
●
Se puede aplicar lo mismo que para los informes.
●
Los elementos que añadamos nosotros deben llevar el atributo id para
facilitar la herencia desde nuestros elementos.
●
Los que están estándar, si están bien hechos (definidas plantillas por
separado y con IDs), nos pueden permitir cierto juego de cambio de sitio
jugando con la prioridad de las vistas.
www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo
Compatibilidad en website
www.tecnativa.com
Gracias por
su atención

Más contenido relacionado

La actualidad más candente

Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
agilenavarra
 
No instales software pirata en tu empresa, usa software libre
 No instales software pirata en tu empresa, usa software libre No instales software pirata en tu empresa, usa software libre
No instales software pirata en tu empresa, usa software libre
Francisco Javier Félix Belmonte
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
César Hernández
 
WPO para Magento - Meet Magento 2017
WPO para Magento - Meet Magento 2017WPO para Magento - Meet Magento 2017
WPO para Magento - Meet Magento 2017
Fernando Puente
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
Roberto Segura
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
Antonio Nicolás Pina
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Alberto Sanz Herrero
 
Gestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetGestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGet
Luis Fraile
 
De 0 a 100 con Magento 2
De 0 a 100 con Magento 2De 0 a 100 con Magento 2
De 0 a 100 con Magento 2
Óscar Recio Soria
 
Training de pareja
Training de pareja Training de pareja
Training de pareja
Federico Montilla Luna
 
#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end
Rubén Rodríguez
 

La actualidad más candente (12)

Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
No instales software pirata en tu empresa, usa software libre
 No instales software pirata en tu empresa, usa software libre No instales software pirata en tu empresa, usa software libre
No instales software pirata en tu empresa, usa software libre
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
WPO para Magento - Meet Magento 2017
WPO para Magento - Meet Magento 2017WPO para Magento - Meet Magento 2017
WPO para Magento - Meet Magento 2017
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
 
Pangoscrum
PangoscrumPangoscrum
Pangoscrum
 
Gestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetGestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGet
 
De 0 a 100 con Magento 2
De 0 a 100 con Magento 2De 0 a 100 con Magento 2
De 0 a 100 con Magento 2
 
Training de pareja
Training de pareja Training de pareja
Training de pareja
 
#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end
 

Destacado

Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...
Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...
Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...
Pedro Manuel Baeza Romero
 
Licencias Odoo 2015 versión 9
Licencias Odoo 2015 versión 9Licencias Odoo 2015 versión 9
Licencias Odoo 2015 versión 9Domatix
 
VAT: Manage your risk and maximise your cashflow
VAT: Manage your risk and maximise your cashflowVAT: Manage your risk and maximise your cashflow
VAT: Manage your risk and maximise your cashflow
Alex Baulf
 
Jornadas Odoo 2015 - Charla con Odoo S. A.
Jornadas Odoo 2015 - Charla con Odoo S. A.Jornadas Odoo 2015 - Charla con Odoo S. A.
Jornadas Odoo 2015 - Charla con Odoo S. A.
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...
Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...
Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...
Pedro Manuel Baeza Romero
 
Odoo a simple vista
Odoo a simple vistaOdoo a simple vista
Odoo a simple vista
Eneldo Serrata
 
Sobrevivir a un proyecto de Odoo
Sobrevivir a un proyecto de OdooSobrevivir a un proyecto de Odoo
Sobrevivir a un proyecto de Odoo
Domatix
 
API REST para conectar Odoo
 API REST para conectar Odoo  API REST para conectar Odoo
API REST para conectar Odoo
Domatix
 
Conoce a Richard - La Experiencia Odoo
Conoce a Richard - La Experiencia OdooConoce a Richard - La Experiencia Odoo
Conoce a Richard - La Experiencia Odoo
Daniel Blanco
 
Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...
Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...
Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...
Albert Cabedo Pla
 
Resume for Angela Miller
Resume for  Angela MillerResume for  Angela Miller
Resume for Angela MillerAngela Miller
 
Módulo de Gestión de Expedientes integrado con openERP Odoo
Módulo de Gestión de Expedientes integrado con openERP OdooMódulo de Gestión de Expedientes integrado con openERP Odoo
Módulo de Gestión de Expedientes integrado con openERP Odoo
Infoacp
 
DocOpenERP - Manual openerp.230209
DocOpenERP - Manual openerp.230209DocOpenERP - Manual openerp.230209
DocOpenERP - Manual openerp.230209
Finanzas Empresa - Open ERP
 
DocUbuntu - Instalacion Estandar
DocUbuntu - Instalacion EstandarDocUbuntu - Instalacion Estandar
DocUbuntu - Instalacion Estandar
Finanzas Empresa - Open ERP
 
Open erp tutorial_basico
Open erp tutorial_basicoOpen erp tutorial_basico
Open erp tutorial_basico
Ma Fer Ajoy
 
BaseTIS - caso de éxito gestión personal con Odoo
BaseTIS - caso de éxito gestión personal con OdooBaseTIS - caso de éxito gestión personal con Odoo
BaseTIS - caso de éxito gestión personal con Odoo
BaseTIS
 
Gestión empresarial con Software Libre
Gestión empresarial con Software LibreGestión empresarial con Software Libre
Gestión empresarial con Software Libre
iveen_
 

Destacado (20)

Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...
Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...
Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización in...
 
Licencias Odoo 2015 versión 9
Licencias Odoo 2015 versión 9Licencias Odoo 2015 versión 9
Licencias Odoo 2015 versión 9
 
VAT: Manage your risk and maximise your cashflow
VAT: Manage your risk and maximise your cashflowVAT: Manage your risk and maximise your cashflow
VAT: Manage your risk and maximise your cashflow
 
Jornadas Odoo 2015 - Charla con Odoo S. A.
Jornadas Odoo 2015 - Charla con Odoo S. A.Jornadas Odoo 2015 - Charla con Odoo S. A.
Jornadas Odoo 2015 - Charla con Odoo S. A.
 
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
 
Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...
Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...
Jornadas Odoo 2016 - ¿Qué esperar de una nueva implantación de un ERP (Odoo)?...
 
Odoo a simple vista
Odoo a simple vistaOdoo a simple vista
Odoo a simple vista
 
Sobrevivir a un proyecto de Odoo
Sobrevivir a un proyecto de OdooSobrevivir a un proyecto de Odoo
Sobrevivir a un proyecto de Odoo
 
API REST para conectar Odoo
 API REST para conectar Odoo  API REST para conectar Odoo
API REST para conectar Odoo
 
Conoce a Richard - La Experiencia Odoo
Conoce a Richard - La Experiencia OdooConoce a Richard - La Experiencia Odoo
Conoce a Richard - La Experiencia Odoo
 
Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...
Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...
Contabilidad práctica odoo prorrata, 340, libro de iva,, intrastat, criterio ...
 
Acadamic_report
Acadamic_reportAcadamic_report
Acadamic_report
 
Resume for Angela Miller
Resume for  Angela MillerResume for  Angela Miller
Resume for Angela Miller
 
Módulo de Gestión de Expedientes integrado con openERP Odoo
Módulo de Gestión de Expedientes integrado con openERP OdooMódulo de Gestión de Expedientes integrado con openERP Odoo
Módulo de Gestión de Expedientes integrado con openERP Odoo
 
DocOpenERP - Manual openerp.230209
DocOpenERP - Manual openerp.230209DocOpenERP - Manual openerp.230209
DocOpenERP - Manual openerp.230209
 
DocUbuntu - Instalacion Estandar
DocUbuntu - Instalacion EstandarDocUbuntu - Instalacion Estandar
DocUbuntu - Instalacion Estandar
 
Open erp tutorial_basico
Open erp tutorial_basicoOpen erp tutorial_basico
Open erp tutorial_basico
 
BaseTIS - caso de éxito gestión personal con Odoo
BaseTIS - caso de éxito gestión personal con OdooBaseTIS - caso de éxito gestión personal con Odoo
BaseTIS - caso de éxito gestión personal con Odoo
 
Unidad4
Unidad4Unidad4
Unidad4
 
Gestión empresarial con Software Libre
Gestión empresarial con Software LibreGestión empresarial con Software Libre
Gestión empresarial con Software Libre
 

Similar a Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pedro M. Baeza

Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephpbetabeers
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
Andy Dawson
 
Buenasprcticas
BuenasprcticasBuenasprcticas
Buenasprcticas
Juan Baudazio Sanchez
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
Donewtech Solutions
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito
Jose Barba Martinez
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
PHP Vigo
 
Magento Best Practices
Magento Best PracticesMagento Best Practices
Magento Best Practices
On4U Global Services
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
Hector Canto
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
Miguel Ángel Sánchez Chordi
 
1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx
ATM_SSI
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
Carlos Ble
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionales
Vicenç García-Altés
 
Proyectos escalables con Drupal
Proyectos escalables con DrupalProyectos escalables con Drupal
Proyectos escalables con Drupal
Pablo Cerda
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
menttes
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
Gabriela Soto
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelosdokeosla
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
Mario IC
 
Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Modelar ensamblar Piezas con Solidworks TUTORIAL.pdf
Modelar  ensamblar   Piezas con   Solidworks TUTORIAL.pdfModelar  ensamblar   Piezas con   Solidworks TUTORIAL.pdf
Modelar ensamblar Piezas con Solidworks TUTORIAL.pdf
Jovanny Duque
 

Similar a Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pedro M. Baeza (20)

Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Buenasprcticas
BuenasprcticasBuenasprcticas
Buenasprcticas
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Magento Best Practices
Magento Best PracticesMagento Best Practices
Magento Best Practices
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionales
 
Proyectos escalables con Drupal
Proyectos escalables con DrupalProyectos escalables con Drupal
Proyectos escalables con Drupal
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Dce2 ejercicios asp.net
 
Modelar ensamblar Piezas con Solidworks TUTORIAL.pdf
Modelar  ensamblar   Piezas con   Solidworks TUTORIAL.pdfModelar  ensamblar   Piezas con   Solidworks TUTORIAL.pdf
Modelar ensamblar Piezas con Solidworks TUTORIAL.pdf
 

Más de Pedro Manuel Baeza Romero

Jornadas Odoo 2016 - Localización española de Odoo - Pedro M. Baeza
Jornadas Odoo 2016 - Localización española de Odoo - Pedro M. BaezaJornadas Odoo 2016 - Localización española de Odoo - Pedro M. Baeza
Jornadas Odoo 2016 - Localización española de Odoo - Pedro M. Baeza
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...
Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...
Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Odoo: Mucho más que un ERP
Jornadas Odoo 2015 - Odoo: Mucho más que un ERPJornadas Odoo 2015 - Odoo: Mucho más que un ERP
Jornadas Odoo 2015 - Odoo: Mucho más que un ERP
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afecta
Jornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afectaJornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afecta
Jornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afecta
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRP
Jornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRPJornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRP
Jornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRP
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidad
Jornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidadJornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidad
Jornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidad
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...
Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...
Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de Odoo
Jornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de OdooJornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de Odoo
Jornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de Odoo
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.
Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.
Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Nuevos módulos e-commerce para Odoo
Jornadas Odoo 2015 - Nuevos módulos e-commerce para OdooJornadas Odoo 2015 - Nuevos módulos e-commerce para Odoo
Jornadas Odoo 2015 - Nuevos módulos e-commerce para Odoo
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para OdooJornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Pedro Manuel Baeza Romero
 
Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de OdooJornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
Pedro Manuel Baeza Romero
 
Jornadas odoo 2015 - Proyectos de I+D en Eficent
Jornadas odoo 2015 - Proyectos de I+D en EficentJornadas odoo 2015 - Proyectos de I+D en Eficent
Jornadas odoo 2015 - Proyectos de I+D en Eficent
Pedro Manuel Baeza Romero
 

Más de Pedro Manuel Baeza Romero (14)

Jornadas Odoo 2016 - Localización española de Odoo - Pedro M. Baeza
Jornadas Odoo 2016 - Localización española de Odoo - Pedro M. BaezaJornadas Odoo 2016 - Localización española de Odoo - Pedro M. Baeza
Jornadas Odoo 2016 - Localización española de Odoo - Pedro M. Baeza
 
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Esp...
 
Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...
Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...
Jornadas Odoo 2016 - Proyectos y tareas: Tan sencillo como potente - Antonio ...
 
Jornadas Odoo 2015 - Odoo: Mucho más que un ERP
Jornadas Odoo 2015 - Odoo: Mucho más que un ERPJornadas Odoo 2015 - Odoo: Mucho más que un ERP
Jornadas Odoo 2015 - Odoo: Mucho más que un ERP
 
Jornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afecta
Jornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afectaJornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afecta
Jornadas Odoo 2015 - Próximo cambio de licencia de Odoo y cómo nos afecta
 
Jornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRP
Jornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRPJornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRP
Jornadas Odoo 2015 - Odoo para empresas de fabricación: OdooMRP
 
Jornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidad
Jornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidadJornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidad
Jornadas Odoo 2015 - De oca en OCA... beneficios de trabajar en la comunidad
 
Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...
Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...
Jornadas Odoo 2015 - Gestión de almacén personalizada para venta Flash. Caso ...
 
Jornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de Odoo
Jornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de OdooJornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de Odoo
Jornadas Odoo 2015 - Gánate a tu director financiero con la contabilidad de Odoo
 
Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.
Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.
Jornadas Odoo 2015 - Caso de éxito Wonkandy S. L.
 
Jornadas Odoo 2015 - Nuevos módulos e-commerce para Odoo
Jornadas Odoo 2015 - Nuevos módulos e-commerce para OdooJornadas Odoo 2015 - Nuevos módulos e-commerce para Odoo
Jornadas Odoo 2015 - Nuevos módulos e-commerce para Odoo
 
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para OdooJornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
 
Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de OdooJornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
Jornadas Odoo 2015 - Cómo migrar un módulo OpenERP a la nueva API de Odoo
 
Jornadas odoo 2015 - Proyectos de I+D en Eficent
Jornadas odoo 2015 - Proyectos de I+D en EficentJornadas odoo 2015 - Proyectos de I+D en Eficent
Jornadas odoo 2015 - Proyectos de I+D en Eficent
 

Último

Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 

Último (20)

Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 

Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pedro M. Baeza

  • 1. Cómo hacer un módulo Odoo compatible con todo Jornadas Odoo 2016 @PedroMBaeza pedro.baeza@tecnativa.com
  • 2. ● Al instalar un módulo, una cosa deja de funcionar ● Al desinstalar un módulo de “prueba”, las cosas no se quedan como estaban. ● Al hacer una actualización completa (--update=all), saltan errores por todas partes. “Solución”: no actualizar completamente nunca. ● Al actualizar, se pierden cosas que se habían puesto. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Situaciones comunes
  • 3. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Problema En el 99% de los casos, no se ha respetado la herencia
  • 4. ● Utilizar módulos de calidad contrastada (OCA). No todos pueden garantizar 100% esa compatibilidad, pero la mayoría sí. Si no la tiene, los módulos OCA lo indican en el README ● Técnicas de programación ● Evitar pruebas en BDs reales. ● Técnicas de programación para desarrollos propios. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo ¿Cómo solucionarlo?
  • 5. ● Utilizar las posibilidades de la nueva API: – Declarar el campo de nuevo (nombre técnico y tipo), pero añadiendo sólo los atributos que cambian: field = fields.Type(readonly=True) # Hacer readonly – selection_add para añadir valores a un campo selection: selection_field = fields.Selection(selection_add=[('new_value', 'New value')]) – Campos compute entre comillas, y sólo habrá que redefinir el método (pero llamando al super): computed_field = fields.Float(compute=”_compute_computed_field”) www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en modelos
  • 6. ● Herencia en métodos: – Nunca sobreescribir un método y no llamar al super. – TÉCNICAS: ● Rescatar datos del valor devuelto y reprocesar el/los registros. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en modelos (II) SUPER def method(self): record = self.env[‘model’].create({…}) return record.id SOBREESCRITURA def method(self): record_id = super(Class, self).method() record = self.env[‘model’].browse(record_id) record.field = “...” return record_id
  • 7. ● Herencia en métodos: – TÉCNICAS: ● Guardar "instantánea" antes y después de llamar al super. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en modelos (II) SUPER def method(self): record1 = self.env[‘model’].create({…}) record2 = self.env[‘model’].create({…}) SOBREESCRITURA def method(self): old_records = self.env[‘model’].search([]) super(Class, self).method() current_records = self.env[‘model’].search([]) new_records = current_records - old_records # process new_records
  • 8. ● Herencia en métodos: – TÉCNICAS: ● Técnicas creativas. https://github.com/odoomrp/odoomrp-wip/blob/0b55ab14925322b3e167f ef24e7aa9d5b38fddb5/procurement_purchase_no_grouping/models/procu rement_order.py#L13 https://github.com/odoomrp/odoomrp-wip/blob/0b55ab14925322b3e167f ef24e7aa9d5b38fddb5/procurement_purchase_no_grouping/models/purch ase_order.py#L17 www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en modelos (III)
  • 9. ● No hacer position=”replace” – Si no se vuelve a añadir el campo ● puede haber error porque otro elemento se posicione en base a él. – Si se vuelve a añadir el campo en otro sitio: ● Se pierden los atributos que se hayan modificado por herencia… ● …y además se pierden los cambios que se puedan hacer en el campo original en actualizaciones. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en vistas
  • 10. ● No hacer position=”replace” – ¿qué hacer entonces? ● Si solo se quiere ocultar el campo, hacer position=”attributes”, y luego <attribute name=”invisible”>1</attribute> ● Si se quiere mover de sitio… – No lo hagas. – No, en serio, no lo hagas. Odoo no siempre tiene la mejor disposición según qué sectores, pero tiene unos criterios razonables. Convencer al cliente es la mejor opción. – Si no hay manera, la manera de hacerlo es: A) crear campo related al campo que quieres hacer el replace; B) ocultar el campo original; C) Insertar el campo related. Aún así, perderás las posibles propiedades heredadas. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en vistas (II)
  • 11. ● De nuevo, no hacer position=”replace” (o bueno, no indiscriminadamente) – Es común que otros módulos añadan datos a un informe estándar. Ejemplo: https://github.com/OCA/bank-payment/blob/9dc92beb4c2f07dbf189487875f0405 385cb762e/account_payment_partner/views/report_invoice.xml#L5 – Si se tiene que cambiar mucho el formato, mejor hacer un replace de la plantilla entera, que andar cambiando múltiples cosas. No se obtendrán los campos de los módulos adicionales, pero por lo menos no dará error. <template id="report_invoice_inherit" inherit_id="account.report_invoice"> <xpath expr="//t[@t-raw]" position="replace"> <t t-raw="translate_doc(…, 'custom.report_invoice_document_custom')"/> </xpath> </template> www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en informes
  • 12. ● Se puede aplicar lo mismo que para los informes. ● Los elementos que añadamos nosotros deben llevar el atributo id para facilitar la herencia desde nuestros elementos. ● Los que están estándar, si están bien hechos (definidas plantillas por separado y con IDs), nos pueden permitir cierto juego de cambio de sitio jugando con la prioridad de las vistas. www.tecnativa.comCómo hacer un módulo de Odoo compatible con todo Compatibilidad en website