Hola developers, hoy les traigo un tip que puede ser útil en más de una ocasión.
En el desarrollo de un proyecto, es bastante común que necesitemos ejecutar una lógica encapsulada en una función al “momento de actualizar o instalar un módulo”. En este tipo de acciones “asincrónicas” o desligadas de un evento producido por una acción de usuario, en la mayoría de los casos solemos tirar de los crones, pero … y si la acción se debe iniciar con la actualización/instalación de un módulo, y no al alcanzar un tiempo específico? Sin más líneas redundantes levantemos el telón...
Caso de estudio
Debemos desarrollar un addon que entre otras funcionalidades, debe cargar un conjunto de cuentas bancarias al sistema y actualizar todos los diarios de tipo Banco que existan en el sistema (sin importar de cual empresa sea) indicando a cada Diario Bancario que estará asociado a nuevas cuentas bancarias.
Para ello en nuestro addon, en uno de nuestros archivos *.xml indicamos la función a ejecutar al momento de la instalación.
El código anterior, al momento de instalar el addon, ejecutará la función “update_account_bank” que debe estar implementada dentro del modelo “account.journal”.
Luego, (sí… ya sé que lo adivinaste, solo nos quedaría implementar dicha función :) ….
Con el modificador “noupdate” en el xml controlamos si la función debe ejecutarse solo al instalar o con cada actualización. En nuestro ejemplo lo mantenemos en “1”, no tendría mucho sentido que se ejecutara con cada update al addon.
Por ahora break …. cuídense.