Los módulos de Odoo nos permiten añadir nuevas funcionalidades a nuestro sistema o modificar funcionalidades existentes a nuestro gusto, sin embargo al desarrollar un módulo debemos tener en cuenta su estructura y las diferentes carpetas que lo conforman.
La carpeta contenedora de los archivos de nuestro módulo deberá tener el nombre de nuestro módulo: “nombre_del_modulo”. Dentro de esta, podremos agregar las siguientes:
- __manifest__.py: este archivo es indispensable para que nuestro módulo funcione, se podría decir que es el núcleo donde decidimos qué archivos o dependencias se ejecutan.
- __init__.py: en este archivo colocamos la referencia a todas las carpetas donde tengamos archivos *.py que por lo general es nuestra carpeta models o controllers. En caso nuestro módulo no necesite archivos *.py, aún es necesario tener este archivo vacío en nuestra estructura.
- models/: esta es la carpeta donde tendremos nuestro código Python, donde definiremos nuestras clases, campos, funciones.
- controllers/: similar a la carpeta models pero para el manejo de peticiones web.
- data/: usada para definir datos preestablecidos en nuestro módulo como secuencias o valores por defecto de algunos modelos. Son archivos *.xml generalmente.
- static/: para colocar nuestros datos estáticos como estilos *.css o *.js que utilizamos en la creación de interfaz web.
- views/: nuestra carpeta principal donde almacenaremos nuestros archivos *.xml con nuestras vistas, menús y acciones.
- security/: contiene información sobre permisos de usuarios o accesos a nuestros modelos para los distintos grupos del sistema.
Estas son algunas de las carpetas más usadas en los módulos de Odoo, se darán cuenta que podemos crear el módulo referenciando todo desde una misma carpeta, sin embargo esta estructura nos ayuda al mantenimiento y las mejoras que hagamos a futuro en nuestro módulo.
Si tienes consultas sobre algunas secciones adicionales o más detalle sobre algún punto déjalo en los comentarios.