Módulo Odoo
Módulo Odoo
Módulo Odoo
Comenzaremos con la base que tienes tu instalación de odoo, hay dos forma de hacerlo, una
es con scaffold, que crear o genera la estructura para que puedas comenzar a desarrollar tu módulo,
y la otra es que tú crees los archivos manualmente, esta es la estructura básica que debes tener para
el módulo, el nombre es a tu elección.
Estructura resultante:
my_module
├── __init__.py
├── __manifest__.py
├── controllers
│ ├── __init__.py
│ └── controllers.py
├── demo
│ └── demo.xml
├── models
│ ├── __init__.py
│ └── models.py
├── security
│ └── ir.model.access.csv
└── views
├── templates.xml
└── views.xml
· views/views.xml, un arbol y una vista de formulario, con los menus que lo abren.
· views/templates.xml, dos ejemplos de vistas qweb utilizadas en las rutas de los controladores
anteriores.
Compartiré algo sencillo para que tengas la idea de como comenzar y luego podrás ir mejorando tu
código con lo tú necesitas, obviamente debes saber un poco o más que saber es entender como
funciona el código, ya que está basado en Python.
Te recomendó utilizar algún editor de código, el de tu preferencia, ya que será más fácil poder leer
el código. Comencemos creando nuestro módulo dentro de la carpeta Models, en esta carpeta debe
haber dos archivos, uno es el __init__.py, y el otro models.py, el primero tiene esta forma:
__init__.py
Este archivo se usa para inicializar su módulo y es obligatorio en todos y cada uno de los módulos
que crees.
models.py
class CertInstructor(models.Model):
_name = 'instructor'
_descripcion = 'Registro Instructores'
Como puedes ver en el código, se debe importa algunas bibliotecas, en el name colocas el nombre
del módulo que estás creando, luego vas creando los campos que requieres en tu módulo, como
consejo el name siempre debe ir, los demás campos puedes colocar de nombre referenciando al
campo, como ves en la imagen cada campo es según a lo que requieres, me explico si vas a colocar
el nombre obviamente es de tipo Char, te dejo un link para que puedas ver los distintos tipos de
campos que puedes incorporar https://odoo.rgbconsulting.com/blog/blog-6/tipos-de-campos-en-
odoo21#:~:text=En%20Odoo%2C%20se%20categorizan%20en,otros%20campos%20de%20la
%20vista
Teniendo tu clase ya creada con los campos que requieres para tú módulo, ahora tienes que crear tu
vista, dentro de esta vista estará tu formulario el cual recibirá la información y la vista donde podrás
ver la información ingresada.
Para ello nos dirigimos a la carpeta views, y crearemos un archivo con la extensión XML, esta es la
estructura de tipo formulario.
views.xml
Este ejemplo corresponde al formulario, donde se recibirá la información dentro del mismo archivo
sé crear la vista tree, que es donde se muestra la información.
<odoo>
<data>
<record>
</record>
</data>
</odoo>
Este es el tipo de acción más común, utilizado para presentar visualizaciones de un modelo a través
de vistas, teniendo tu vista, form y tree, debes crear el contexto de la vista acción de
ventana(windows), dentro del mismo archivo views.
Odoo tiene una forma flexible de definir menús, submenús y acciones. La principal atracción es que
se puede crear un menú y un submenú a partir del código y de la interfaz de usuario, lo que hace
que Odoo sea más fácil de usar, Añadimos el elemento de menú en el archivo view como este
ejemplo:
Ya tenemos casi listo nuestro módulo, ahora debemos darle permiso para que se muestre en
nuestro odoo, y para eso debemos generar el archivo CSV de nuestra carpeta security, su estructura
es la siguiente:
ir.model.access.csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,
perm_unlink
access_certificados_usuario,certificados.usuario,model_certificado
s_cert,group_shool_startel_usuario,1,1,1,1
· model_id/id = el nombre único del modelo de la clase en la que desea aplicar el permiso (Ejemplo
model_res_partner)
· group_id/id = se aplica el permiso de grupo (yopu puede definirlo en un archivo de grupo xml o
llamar a un grupo existente con sintaxis module.group_id)
· perm_read,perm_write,perm_create,perm_unlink = los 4 valores para el permiso relativo para
leer, escribir, crear y desvincular registros en una clase definida. 1 es Verdadero (puedes hacer esta
acción) y 0 es Falso (no puedes)
Como te podrás dar cuenta en la estructura del nuestra carpeta principal del my_modulo, hay dos
archivos, el _init_.py y el _manifest_.py.
El método init se usa principalmente para la inicialización del modelo o las operaciones de la base
de datos después de instalar o actualizar el módulo.
__init__.py
El archivo de manifiesto sirve para declarar un paquete de python como un módulo de Odoo y para
especificar los metadatos del módulo.
Es un archivo llamado __manifest__.py contiene un solo diccionario de Python, donde cada clave
especifica los metadatos del módulo.
__manifest__.py
{
'name': "My Modulo",
'version': '15.0.4.0.0',
'sequence': 1,
'description': """
Módulo CRM para la gestión de registro...
""",
'author': "Odoo",
'website': "http://odoo.com",
# always loaded
'data': [
'security/ir.model.access.csv',
'views/views.xml',
],
}
Los campos de manifiesto disponibles son:
version (str)
la versión de este módulo debe seguir las reglas de control de versiones semánticas
description (str)
author (str)
website (str)
depends (list(str))
Módulos de Odoo que deben cargarse antes que este, ya sea porque este módulo usa funciones que
ellos crean o porque altera los recursos que definen.
Cuando se instala un módulo, todas sus dependencias se instalan antes que él. Del mismo modo, las
dependencias se cargan antes de cargar un módulo.
data (list(str))
Lista de archivos de datos que siempre deben instalarse o actualizarse con el módulo. Una lista de
rutas desde el directorio raíz del módulo.
Link oficial …
https://www.odoo.com/documentation/17.0/es/administration/odoo_sh/getting_started/
first_module.html