Introducción
Odoo es una suite de aplicaciones empresariales de código abierto que cubre todas las necesidades empresariales, desde CRM hasta gestión de inventarios y más. Los módulos en Odoo permiten añadir funcionalidades personalizadas sin alterar el núcleo del sistema. En este artículo, aprenderás cómo crear un módulo básico en Odoo.
Requisitos Previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Odoo instalado y en funcionamiento.
- Acceso a los archivos de Odoo (a través de SSH o un gestor de archivos).
- Conocimientos básicos de Python y del framework de Odoo.
Paso 1: Configurar el Entorno
Crear la Estructura del Módulo
- Accede al directorio de addons de Odoo:
/odoo/odoo-server/addons/
- Crea una nueva carpeta para tu módulo. Por ejemplo:
/odoo/odoo-server/addons/mi_modulo_basico/
Crear Archivos Básicos
Dentro de la carpeta de tu módulo, crea los siguientes archivos y directorios:
mi_modulo_basico/
|-- __init__.py
|-- __manifest__.py
|-- models/
| |-- __init__.py
| |-- mi_modelo.py
|-- views/
|-- mi_modelo_views.xml
Paso 2: Definir el Manifiesto del Módulo
El archivo __manifest__.py
contiene la información del módulo y sus configuraciones básicas.
{
'name': 'Mi Módulo Básico',
'version': '1.0',
'summary': 'Un módulo básico de ejemplo para Odoo.',
'description': 'Este es un módulo básico de ejemplo para aprender a desarrollar en Odoo.',
'category': 'Uncategorized',
'author': 'Tu Nombre',
'website': 'http://tusitio.com',
'depends': ['base'],
'data': [
'views/mi_modelo_views.xml',
],
'installable': True,
'application': True,
}
Paso 3: Crear Modelos
En Odoo, los modelos representan las estructuras de datos. Vamos a crear un modelo básico en el archivo mi_modelo.py
.
Definir el Modelo
Edita el archivo models/mi_modelo.py
y añade el siguiente código:
from odoo import models, fields
class MiModelo(models.Model):
_name = 'mi.modulo'
_description = 'Mi Módulo'
name = fields.Char(string='Nombre', required=True)
description = fields.Text(string='Descripción')
Inicializar el Modelo
Asegúrate de que el archivo models/__init__.py
importa el modelo que acabas de crear:
from . import mi_modelo
Paso 4: Crear Vistas
Las vistas en Odoo definen la interfaz de usuario para los modelos. Vamos a crear una vista básica para nuestro modelo.
Definir la Vista
Edita el archivo views/mi_modelo_views.xml
y añade el siguiente código:
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_mi_modulo_form" model="ir.ui.view">
<field name="name">mi.modulo.form</field>
<field name="model">mi.modulo</field>
<field name="arch" type="xml">
<form string="Mi Módulo">
<sheet>
<group>
<field name="name"/>
<field name="description"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_mi_modulo_tree" model="ir.ui.view">
<field name="name">mi.modulo.tree</field>
<field name="model">mi.modulo</field>
<field name="arch" type="xml">
<tree string="Mi Módulo">
<field name="name"/>
</tree>
</field>
</record>
<menuitem id="menu_mi_modulo" name="Mi Módulo" sequence="1"/>
<menuitem id="submenu_mi_modulo" name="Mi Módulo" parent="menu_mi_modulo" action="action_mi_modulo"/>
<record id="action_mi_modulo" model="ir.actions.act_window">
<field name="name">Mi Módulo</field>
<field name="res_model">mi.modulo</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
Paso 5: Instalar el Módulo
Actualizar la Lista de Módulos
Para que Odoo reconozca tu nuevo módulo, necesitas actualizar la lista de módulos. Accede al terminal y ejecuta:
sudo service odoo restart
Luego, inicia sesión en el panel de administración de Odoo, ve a Apps, y haz clic en el botón Actualizar Apps.
Instalar el Módulo
Busca «Mi Módulo Básico» en la lista de aplicaciones y haz clic en Instalar.
Conclusión
Crear un módulo básico en Odoo implica varios pasos, desde la creación de la estructura de archivos hasta la definición de modelos y vistas. Este artículo te proporciona una guía inicial para desarrollar tus propios módulos y extender las capacidades de tu instancia de Odoo. Con práctica y exploración adicional, podrás crear módulos más complejos y útiles para satisfacer las necesidades específicas de tu negocio.