Capítulo 1: Descripción general de la arquitectura
Aplicación multinivel
Odoo sigue una arquitectura de varios niveles, lo que significa que la presentación, lógica empresarial y el almacenamiento de datos están separados. El nivel de presentación es una combinación de HTML5, JavaScript y CSS. El nivel lógico está escrito exclusivamente en Python, mientras que el nivel de datos solo admite PostgreSQL como RDBMS. Dependiendo del alcance de su módulo, el desarrollo de Odoo se puede realizar en cualquiera de estos niveles.
Módulos de Odoo
Tanto las extensiones de servidor como de cliente, están empaquetadas como módulos que se cargan opcionalmente en una base de datos.
Los módulos de Odoo pueden agregar una nueva lógica empresarial a un sistema Odoo o alterar y ampliar la lógica existente. Se puede crear un módulo para agregar las reglas de contabilidad de su país al soporte de contabilidad genérico de Odoo, mientras que un módulo diferente puede agregar soporte para la visualización en tiempo real de una flota de autobuses. En Odoo, el comienzo y el fin es mediante módulos.
Terminología: los desarrolladores agrupan sus características comerciales en módulos de Odoo. Los principales módulos orientados al usuario están marcados y expuestos como aplicaciones, pero la mayoría, no son aplicaciones. Los módulos también pueden denominarse complementos y los directorios donde los encuentra el servidor Odoo forman el addons_path
Composición de un módulo
Un módulo de Odoo puede contener varios elementos:
Objetos de negocio: Un objeto comercial como por ejemplo, una factura, se declara como una clase Python. Los campos definidos en estas clases se mapean automáticamente a las columnas de la base de datos gracias a la capa ORM.
Vistas de objetos: Definir la visualización de la interfaz de usuario
Archivos de información: Archivos XML o CSV que declaran los datos del modelo: vistas o informes; datos de configuración (parametrización de módulos, reglas de seguridad); datos de demostración, etc.
Controladores web: Manejar solicitudes de navegadores web
Datos web estáticos: Imágenes, archivos CSS o JavaScript utilizados por la interfaz web o el sitio web.
Ninguno de estos elementos es obligatorio. Es posible que algunos módulos solo agreguen archivos de datos (por ejemplo, configuración de contabilidad específica del país), mientras que otros solo pueden agregar objetos comerciales.
Estructura del módulo
Cada módulo es un directorio dentro de un directorio de módulo, que se especifican mediante la opción --addons-path
Un módulo de Odoo se declara mediante su manifiesto. Cuando este, incluye objetos comerciales (es decir, archivos de Python), se organizan como un paquete de Python con un archivo __init__.py . Dicho archivo, contiene instrucciones de importación para varios archivos de Python en el módulo.
Aquí hay un directorio de módulos simplificado:
Ediciones Odoo
Odoo está disponible en dos versiones:
v Odoo Enterprise: fuentes con licencia y compartidas.
v Odoo Community: código abierto
Además de servicios como soporte o actualizaciones, la versión Enterprise proporciona funcionalidades adicionales a Odoo. Desde un punto de vista técnico, estas funcionalidades son simplemente nuevos módulos instalados sobre los módulos proporcionados por la versión comunitaria.
Entonces, está usted ¿listo para empezar?
(Para seguir este tutorial, necesitará un conocimiento muy básico de HTML y un nivel intermedio de Python)
Capítulo 1: Descripción general de la arquitectura