La primera de cuatro entregas sobre el uso del modo desarrollador de Odoo
Odoo 15 Fundamentos del Desarrollo, Quinta Edición, Ya está disponible. Como gesto de celebración, el primer capítulo del libro, “Introducción al desarrollo de Odoo utilizando el modo de desarrollador”, se está reconfigurando en una serie de cuatro artículos, disponibles aquí en el sitio de Open Source Integrators. ¡Disfrutar!
Introducido en este artículo:
- Usando el modo de desarrollador para el proyecto de aplicación de tareas pendientes de Odoo
- Conceptos básicos de desarrollo de Odoo.
- Cómo habilitar las herramientas de desarrollo de Odoo
Mejorando la experiencia en desarrollo de Odoo
Realizar negocios al ritmo y la complejidad del mundo actual a menudo conlleva cierta tensión logística en toda la gama de sus operaciones. Desde ventas y marketing hasta servicios y fabricación, la incapacidad de moldear su software empresarial según sus necesidades puede tener efectos drásticos en la forma en que su organización realiza el trabajo.
Odoo puede aliviar parte de esta tensión al proporcionar un marco de aplicación rápido adecuado para crear aplicaciones comerciales accesibles y eficientes. El impulso comercial de Odoo incluye un enfoque especial en ayudarlo a realizar un seguimiento de los registros comerciales y mejorar la visibilidad en todos los flujos de trabajo, con componentes enriquecidos para crear interfaces de usuario (UI) atractivas, como tableros kanban, calendarios y vistas de gráficos para una experiencia de usuario optimizada.
Estamos publicando esta serie de cuatro artículos basados en contenido de Odoo 15 Fundamentos del desarrollo para explorar las partes internas de Odoo desde la interfaz de usuario web, brindándole una comprensión práctica de los componentes y herramientas de la aplicación Odoo mientras usa el modo de desarrollador (a veces denominado modo de depuración). Como herramienta de enseñanza, las características del modo desarrollador actúan como una forma de presentar cómo se organizan los datos de configuración de la aplicación en el marco de Odoo y cómo se puede aprovechar el modo desarrollador para personalizaciones simples o soluciones de creación de prototipos.
Implementando una aplicación simple de tareas pendientes en Odoo
Entonces, con eso en mente, nos gustaría atender su conveniencia incluyéndolo en un proyecto destinado a demostrar directamente el modo desarrollador. A lo largo de estos cuatro artículos, hemos elaborado un proyecto interactivo para ayudarlo a familiarizarse con el desarrollo de Odoo: Implementación de una aplicación sencilla de lista de tareas pendientes en Odoo.
Todo lo que necesitas es una base de datos Odoo para comenzar. Utilizando una instancia autohospedada de Odoo o una instancia de Odoo Online en odoo.com, comenzaremos a profundizar en el proyecto de lista de tareas pendientes y las prácticas relacionadas de Odoo.
¿Listo? Vamos.
Presentamos el proyecto de la aplicación de tareas pendientes y la arquitectura Odoo
Comenzando nuestro proyecto de aplicación de tareas pendientes Odoo
El proyecto de lista de tareas pendientes funciona como base para ilustrar los conceptos de Odoo, ya que cada artículo demuestra varias técnicas del modo desarrollador. Y sí, el proyecto es tan atractivo y simple como parece: vamos a crear una aplicación de tareas pendientes en Odoo.
Un punto de enfoque aquí será permitir agregar nuevas tareas pendientes a la lista y marcarlas como completas. Por ejemplo, agregue un comprar huevos elemento a la lista y verifique el ¿Está hecho? cuadro cuando esté completo. Además, haremos que las tareas pendientes sean privadas para cada usuario, lo que significa que el propietario actual de la lista de tareas pendientes solo podrá acceder a sus propias tareas pendientes. Luego, para darle un poco de sabor al proyecto, nos pondremos a trabajar incorporando una lista de personas involucradas en la tarea, es decir, una Grupo de trabajo.
Pero primero, debemos empezar a pensar en las capas involucradas en nuestra aplicación.
Arquitectura Odoo: 3 niveles de aplicaciones esenciales
Antes de volver al proyecto de tareas pendientes, repasemos rápidamente una descripción general pragmática de las capas involucradas en la arquitectura de Odoo y el papel de cada componente que usaremos.
Las aplicaciones de Odoo se pueden dividir en tres niveles:
Datos, Lógica, y Presentación
Nivel de datos
En el nivel más bajo, la capa de datos es responsable del almacenamiento y la persistencia de los datos. Odoo se basa en un servidor PostgreSQL para esto. Tenga en cuenta que PostgreSQL es el único servidor de base de datos compatible con Odoo, una elección de diseño realizada sobre el backend de la base de datos. Los archivos binarios, como archivos adjuntos de documentos o imágenes, se almacenan en el sistema de archivos en un directorio denominado almacén de archivos. Esto significa que una copia de seguridad completa de una instancia de Odoo necesita tanto un volcado de la base de datos como una copia del almacén de archivos.
Si bien rara vez usaremos SQL para interactuar directamente con el motor de la base de datos, es importante tener en cuenta que es posible hacerlo y podría ser necesario en casos particulares.
Odoo se basa en su motor de mapeo relacional de objetos (ORM) como interfaz entre las aplicaciones y la base de datos. El ORM proporciona la interfaz de programación de aplicaciones (API) utilizada por los módulos adicionales para interactuar con los datos. Implementamos la capa de datos utilizando modelos ORM. Por ejemplo, la entidad de datos del Socio, utilizada para registros de datos como clientes o proveedores, está representada por un modelo.
Como regla general, solo esta capa debe acceder a la base de datos de bajo nivel, ya que garantiza el control de acceso de seguridad y la coherencia de los datos. Los modelos ORM son una clase de objeto de Python que admite varios métodos de interacción, como las operaciones básicas de creación, lectura, actualización y eliminación (CRUD). En particular, estas operaciones CRUD se implementan mediante los métodos del modelo create(), search(), write() y unlink().
Nivel lógico
El nivel lógico es responsable de todas las interacciones con el nivel de datos y es manejado por el servidor Odoo. Las operaciones CRUD básicas se pueden ampliar para implementar una lógica empresarial específica. Por ejemplo, los métodos del modelo create() y write() pueden implementar valores predeterminados o alguna otra automatización. Se pueden agregar otros métodos de código para hacer cumplir las reglas de validación o calcular automáticamente los valores de los campos.
Nivel de presentación
El nivel de presentación es responsable de presentar datos e interactuar con el usuario. Lo implementa la sección de cliente del software y es responsable de la interacción del usuario final. El software cliente utiliza llamadas a procedimientos remotos (RPC) al servicio Odoo, ejecutando el ORM y la lógica empresarial. Las llamadas API ORM se envían al servidor Odoo para su procesamiento, lectura, escritura, verificación o realización de cualquier otra acción. Luego, los resultados se envían de vuelta al cliente para su posterior procesamiento.
Un aspecto especial del nivel de presentación es que Odoo proporciona un cliente web listo para usar. El cliente web admite todas las funciones que necesita una aplicación empresarial, como sesiones de inicio de sesión, menús de navegación, listas de datos y formularios.
También está disponible un marco de sitio web para utilizar como interfaz pública para usuarios externos. Equipado con funciones de CMS, un marco nos permite crear páginas web tanto estáticas como dinámicas. El marco del sitio web utiliza componentes de controlador para el código que implementa la lógica específica de la presentación, manteniéndola separada de la lógica intrínseca del modelo. La representación de la página utiliza QWeb como motor de plantillas, que son documentos XML que contienen marcado HTML más etiquetas XML QWeb específicas para operaciones como bucles, condiciones o llamadas para incluir otras plantillas.
Unas breves palabras sobre la API abierta de Odoo
La API del servidor Odoo está abierta y todas las funciones del servidor están disponibles a través de ella. La API del servidor utilizada por el cliente web oficial es la misma que la disponible para cualquier otra aplicación. Esto significa que son posibles otras implementaciones de clientes y se pueden crear en casi cualquier plataforma o lenguaje de programación. Se pueden crear aplicaciones de escritorio y teléfonos inteligentes para proporcionar interfaces de usuario específicas, aprovechando los niveles lógicos y de datos de Odoo para la lógica empresarial y la persistencia de los datos.
Pensando en el proyecto de la aplicación de tareas pendientes de Odoo a través de los niveles de la aplicación
Ahora que hemos explorado brevemente los niveles de la aplicación, echemos un vistazo a cómo se utilizará cada nivel en el proyecto de la aplicación de tareas pendientes de Odoo. Es útil abordar estos niveles como la estructura principal sobre cómo pensar en nuestra aplicación.
Proyecto de tareas pendientes y nivel de datos
Modo de implementación: Modelos
Para el nivel de datos, crearemos un Modelo de tarea pendiente. Para el Grupo de trabajo función, aprovecharemos el modelo de Contactos integrado (también llamado Modelo de socio).
Una nota para anotar y comprobar dos veces: No olvides configurar la seguridad del control de acceso para nuestro nuevo modelo.
Proyecto de tareas pendientes y nivel de lógica empresarial
Modo de implementación: código de automatización Python
El nivel de lógica empresarial serán las operaciones básicas de creación, lectura, actualización y eliminación (CRUD) manejadas por el marco web, sin requisitos de automatización adicionales que admitir. Usaremos código Python en módulos de desarrollador para acceder a todo el poder del marco.
Proyecto de tareas pendientes y nivel de presentación
Modo de implementación: Vistas
Finalmente, para el nivel de presentación, agregaremos la opción Menú para nuestra aplicación, así como las Vistas para el modelo de Elementos pendientes. Las vistas esenciales para una aplicación empresarial son la vista Lista (para explorar los registros existentes) y la vista Formulario (para acercar un registro y ver todos los detalles). Para comodidad del usuario, también podemos agregar filtros predefinidos al cuadro de búsqueda de la vista de lista. Las opciones del cuadro de búsqueda se configuran a través de un componente de vista de búsqueda.
Pasos de la lista de tareas pendientes
Estos son los pasos que seguiremos para la aplicación de lista de tareas pendientes:
- Cree el nuevo modelo para tareas pendientes.
- Cree los elementos del menú para que estén disponibles para los usuarios.
- Configure la seguridad del control de acceso.
- Cree las vistas Lista y Formulario para las tareas pendientes.
El nuevo modelo de Elementos pendientes debería tener estos campos:
- Descripción, que es un campo Char.
- ¿Está hecho? flag, que es un campo booleano.
Como se señaló anteriormente, nuestra especificación para la aplicación incluye una función de Equipo de trabajo, es decir, la capacidad de seleccionar una lista de personas que trabajarán en la tarea. Entonces, necesitamos un modelo para representar personas y/o entidades específicas. Aquí es donde surge el modelo de Socio de Odoo, nombre técnico socio res., entra en juego para personas individuales, empresas y direcciones.
El modelo de tareas pendientes debe incluir el campo Equipo de trabajo para seleccionar una lista de personas. Parte del proyecto será limitar las personas que pueden ser seleccionadas para formar parte de Equipos de Trabajo, lo cual se puede ejecutar modificando el modelo de Socio para agregar un ¿Es trabajo en equipo? bandera. Sólo las personas con esta bandera habilitada pueden ser agregadas a un Equipo de Trabajo.
Para la función Equipo de trabajo, debemos agregar a nuestro plan de trabajo:
- Agregar un campo al modelo de socio y a la vista Formulario
En esta etapa, hemos analizado efectivamente nuestra aplicación Odoo To-do, lo que significa que debemos sumergirnos en los entresijos de las herramientas de desarrollo de Odoo antes de acelerar la implementación real.
Cómo habilitar el modo desarrollador en Odoo
Para que la implementación funcione, debemos acceder a las herramientas de desarrollador habilitando el modo de desarrollador.
El modo de desarrollador es útil para inspeccionar y modificar las configuraciones actuales de Odoo. Nos permite personalizar las aplicaciones de Odoo directamente desde la interfaz de usuario, lo que lo convierte en una forma conveniente de implementar cambios y agregar funciones. El modo de desarrollador se puede utilizar tanto para pequeñas modificaciones (como agregar un campo personalizado) como para personalizaciones más grandes (como crear una aplicación con sus propios menús, vistas y modelo de datos subyacente).
Precaución
El modo de desarrollador expone la configuración interna de las aplicaciones de Odoo y permite cambiarlas. En comparación con las herramientas de programación cubiertas a lo largo Conceptos básicos del desarrollo de Odoo, una persona sin la experiencia o la orientación adecuada sobre cómo utilizar el modo de desarrollador podría dañar la integridad del sistema.
Como práctica recomendada, pruebe siempre los cambios en una base de datos copiada antes de realizarlos en un sistema activo. Si algo sale mal, existe la posibilidad de que una actualización de la aplicación afectada o del módulo base pueda resolverlo, pero esta no es una solución segura.
Habilitar el modo de desarrollador en las actualizaciones de la versión de Odoo
Modo desarrollador después de Odoo 13
Para Odoo 13 y posteriores, el modo de desarrollador está habilitado en Configuración | Página de configuración general. Como se muestra en la figura siguiente, cerca de la parte inferior de la página encontrará la sección Herramientas de desarrollador con el enlace Activar el modo de desarrollador. Haga clic para habilitar las funciones del modo desarrollador para la ventana actual del navegador.
Tenga en cuenta que la opción del menú Configuración general solo es visible cuando hay al menos una aplicación instalada. En tal caso, simplemente instala una aplicación, como Contactos, CRM o cualquier otra de tu preferencia para activar el menú.
Modo desarrollador antes de Odoo 13
Para Odoo 10 a 12, el modo de desarrollador está habilitado en Configuración | Página del panel, en la esquina inferior derecha. Para Odoo 9 y versiones anteriores, el modo de desarrollador se activa en la ventana de diálogo Acerca de, disponible en el menú Usuario, en la esquina superior derecha del cliente web.
Menús habilitados en modo desarrollador de Odoo
Una vez habilitado el modo de desarrollador, los siguientes menús estarán disponibles:
- En la aplicación Configuración, los elementos del menú Técnico y Traducciones.
- En la barra de menú superior, el ícono de error de Herramientas para desarrolladores, en el lado derecho, al lado de los íconos de Conversaciones y Actividades.
El modo de desarrollador también permite información adicional sobre las vistas del cliente web. Pase el cursor sobre una selección para mostrar la información técnica de ese campo.
Habilite el modo desarrollador manualmente con la URL
El modo de desarrollador también se puede habilitar editando directamente la URL actual, sin tener que salir de la página actual para abrir Configuración. Edite la URL para cambiar el .../web#... parte para insertar .../web?debug=1#... . Por ejemplo, http://localhost:8069/web#home se convertiría http://localhost_8069/web?debug=1#home.
Modo desarrollador de Odoo (con activos) y minificación
Para tiempos de carga más rápidos, el cliente web minimiza los activos de JavaScript y CSS en archivos compactos. Desafortunadamente, eso hace que la depuración del cliente web sea casi imposible.
Por suerte, el Activar el modo desarrollador (con activos) La opción evita esta minificación y carga los recursos web en archivos individuales no minificados. Esto es útil para depurar el propio cliente web, a expensas de hacer que la navegación del cliente web sea más lenta.
Consejo: Tanto los navegadores Firefox como Chrome tienen extensiones disponibles para habilitar y deshabilitar cómodamente el modo de desarrollador. Busque "Odoo Debug" en las tiendas de extensiones correspondientes.
Explicando las limitaciones de personalización del desarrollador de Odoo
Realizar personalizaciones en modo desarrollador tiene algunas limitaciones. Por ejemplo, las herramientas de desarrollo no pueden agregar ni ampliar los métodos ORM predeterminados.
Las personalizaciones realizadas con el modo desarrollador (y con la aplicación Odoo Studio, para el caso) no se pueden integrar fácilmente en un flujo de trabajo de desarrollo estructurado, con control de versiones, pruebas automatizadas y flujos de trabajo de control de calidad, preparación y promoción de código de producción.
Acerca de Odoo Studio
Tanto Odoo Enterprise Edition como Odoo SaaS ofrecen la aplicación Odoo Studio, un creador de aplicaciones interactivas. No lo usaremos aquí, ya que no está disponible para la Odoo Community Edition utilizada como referencia para esta serie de artículos. Sin embargo, podría ser beneficioso para los usuarios menos expertos en desarrollo considerar Odoo Studio como una alternativa efectiva al modo desarrollador, ya que proporciona una interfaz de usuario fácil de usar para las mismas características de desarrollo interactivas presentadas en este capítulo, junto con algunas características adicionales como como la posibilidad de exportar nuestras personalizaciones a un archivo.
Para nuestros propósitos aquí, usaremos el modo de desarrollador y el menú técnico, ambos disponibles en todas las ediciones de Odoo. La mayor parte de lo que se puede construir usando Odoo Studio también se puede construir con estas herramientas, pero es importante tener en cuenta que el modo desarrollador es un enfoque de construcción mucho más técnico, que puede no ser tan amigable para los no desarrolladores.
¿Por qué desarrollar Odoo?
Este conjunto de artículos tiene como objetivo difundir conocimientos básicos sobre el desarrollo de Odoo con la esperanza de brindar a la comunidad de Odoo más autonomía a la hora de crear mejores aplicaciones comerciales. Aunque la libertad y flexibilidad del cliente vienen incluidas en la elección de asociarse con OSI para todas sus necesidades de ERP de código abierto de Odoo, fomentar conocimientos técnicos como el proporcionado puede mejorar drásticamente el control sobre el éxito de sus aplicaciones comerciales.
Esperamos que estos artículos sirvan como punto de partida para profesores, formadores, desarrolladores con conocimientos básicos de programación en Python, gerentes de desarrollo de Odoo e incluso desarrolladores experimentados de Odoo. En resumen, creemos que estos artículos y su texto fuente, Odoo 15 Fundamentos del desarrollo, son recursos excelentes para que la comunidad de Odoo se sumerja en los componentes básicos de Odoo o adquiera una guía de referencia disponible para cuando el experto en desarrollo de Odoo necesite verificar las actualizaciones de Odoo.
Gracias por celebrar el lanzamiento de la quinta edición de Odoo Development Essentials siguiéndonos aquí. Esté atento al artículo n.° 2, "Agregar un campo personalizado usando el modo de desarrollador de Odoo". ¡Muy pronto!
Sobre el Autor
Daniel es un profesional de TI experimentado con amplia experiencia en la implementación de aplicaciones comerciales en una amplia gama de sectores. Ha trabajado con Odoo desde 2010, cuando se conocía como Open ERP, y se desempeña como miembro de la junta directiva de la Odoo Community Association (OCA). Daniel es el director general de Open Source Integrators.