SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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óvilagilenavarra
 
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 libreFrancisco 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 2017Fernando 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
 
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 MyGetLuis Fraile
 
#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-endRubé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 cashflowAlex Baulf
 
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
 
Sobrevivir a un proyecto de Odoo
Sobrevivir a un proyecto de OdooSobrevivir a un proyecto de Odoo
Sobrevivir a un proyecto de OdooDomatix
 
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 OdooDaniel 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 OdooInfoacp
 
Open erp tutorial_basico
Open erp tutorial_basicoOpen erp tutorial_basico
Open erp tutorial_basicoMa 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 OdooBaseTIS
 
Gestión empresarial con Software Libre
Gestión empresarial con Software LibreGestión empresarial con Software Libre
Gestión empresarial con Software Libreiveen_
 

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
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockitoJose Barba Martinez
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytestHector 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.pptxATM_SSI
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweekCarlos Ble
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionalesVicenç García-Altés
 
Proyectos escalables con Drupal
Proyectos escalables con DrupalProyectos escalables con Drupal
Proyectos escalables con DrupalPablo 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 frontendmenttes
 
[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.pptxGabriela 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 symfony2Mario IC
 
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.pdfJovanny 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. BaezaPedro 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 ERPPedro 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 afectaPedro 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: OdooMRPPedro 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 comunidadPedro 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 OdooPedro 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 OdooPedro 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 OdooPedro 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 OdooPedro 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 EficentPedro 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

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .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