Estructura de un módulo en Odoo
Paso a paso para elaborar nuestra propia plantilla de módulo
23 agosto, 2020 por
Estructura de un módulo en Odoo
Yen Martínez
| Sin comentarios
La forma en que interactúan los módulos en Odoo, sugiere un gran juego de legos donde cada pieza es un módulo, que puede adicionar funcionalidades nuevas o modificar funcionalidades de otros módulos.
Respetar la estructura de los módulos de Odoo es muy importante, pues nos permite localizar rápidamente las secciones de nuestro código, y además porque facilita muchísimo la tarea de dar soporte a un proyecto nuestro o de terceras personas. 
En este post estaremos describiendo la estructura de un módulo en odoo:
  • module_name: Nombre técnico de nuestro módulo.

  • controllers: Manejo de peticiones de los navegadores web.

  • data: Contiene los archivos que nos permiten precargar datos al sistema. Generalmente archivos .xml. En mi caso particular me gusta también establecer acá las secuencias que defino a mi modelos.

  • docs: Incluiremos acá archivos de documentación de nuestro módulo.

  • i18n: En esta carpeta pondremos los archivos de traducción de las etiquetas y descripciones de nuestro módulo (yo utilizo .po). 

     

  • i18n

Esta codificación proviene de la palabra Internacionalización. Con el objetivo de reducir el tamaño de la cadena que determina la ubicación en disco duro, se toma el primer caracter, seguido de la cantidad de caracteres internos de la palabra, seguido del último caracter. Esta misma regla se aplica con frecuencia  al término Localización (l10n)
  • models: Esta carpeta contiene nuestro código python con la definición de las clases de nuestro módulo.

    • __init__.py: Contiene la referencia a cada archivo .py dentro de la carpeta models.

  • reports: Contiene plantillas de reportes. Si tienes archivos .py en esta carpeta, recuerda incluir también otro archivo __init__.py con la referencia a cada uno de ellos.

  • security: Contiene información sobre los permisos de usuarios específicos sobre los recursos que se incluyan en el módulo.

  • static: Datos estáticos Web. Archivos de imágenes, CSS o javascript utilizados por la interfaz web o sitio web.

  • views: Aquí tendremos los archivos .xml con la definición de las vistas, menuitems, actions, etc.

  • wizard: Se utiliza si nuestro módulo contiene un asistente o wizard, como por ejemplo esos reportes que requieren una pantalla de configuración de parámetros antes de generarlos en algún formato.

  • __init__.py: Contiene la referencia a cada carpeta de las anteriores donde tengas archivos .py. Generalmente la carpeta models, pero también podría ser controllers, reports, wizard. 

     

  • __init__.py

Si tu módulo solo tiene la funcionalidad de cargar datos a tu sistema a través de un archivo .xml o .csv (ningún archivo .py incluido), entonces este fichero estará vacío, pero debes asegurarte de que aún así, quede incluido en tu estructura de carpetas. 
  • __manifest__.py: En versiones anteriores a la 9, este fichero se llamaba __openerp__.py. En módulos migrados desde esas versiones tal vez encuentres todavía ese término. Este fichero es el corazón de nuestro módulo, es quien decide qué fichero se ejecuta y cuándo. Puedes ver la estructura del archivo __manifest__.py este enlace.

Si recién estás comenzando con Odoo, te aconsejo que organices una plantilla de módulo 'típica', con las características que más utilizas en tu entorno. El resultado será una estructura como muestra la siguiente imagen.
De esta forma serás más productiv@ al tener que modificar solamente las cosas particulares de tu actual proyecto/módulo. Y por otro lado evitarás utilizar como plantilla módulos de terceras personas que pueden tenerte por mucho tiempo persiguiendo un error que no es tuyo.   


Estructura de un módulo en Odoo
Yen Martínez
23 agosto, 2020
Share this post
Archivar
Registrarse to leave a comment