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.
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).
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.
__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. |