La segunda de cuatro entregas sobre el uso del modo desarrollador de Odoo.
Cubierto en este artículo:
- Cómo agregar un campo personalizado a un modelo
- Cómo agregar un campo a una vista de formulario
- El campo de la arquitectura de Odoo
- Descripción general de los tipos de vistas de la interfaz de usuario de Odoo
El siguiente paso en su experiencia en desarrollo de Odoo
En el primero de nuestra serie de cuatro artículos, "Introducción al desarrollo de Odoo utilizando el modo de desarrollador" Aprendiste sobre los conceptos esenciales de Odoo y cómo habilitar el modo desarrollador. Después de haber consumido información vital de Odoo junto con la puesta en acción de nuestras incipientes habilidades de desarrollo de Odoo, es hora de ponerse a trabajar para realizar cambios reales utilizando el modo de desarrollador.
En este artículo, abordaremos paso a paso cómo agregar un campo personalizado a un formulario existente usando el modo de desarrollador, implementando otro nivel de complejidad en nuestra aplicación de lista de tareas pendientes de Odoo. Esto actuará como un trampolín esencial que nos preparará para el éxito mientras nos preparamos para abordar el tema del tercer artículo: Agregar un nuevo modelo usando el modo desarrollador.
Dicho esto, profundicemos directamente en agregar un campo personalizado.
Agregar un campo personalizado a un modelo
Agregar un campo personalizado a un formulario existente es una personalización común. Esto se puede hacer desde la interfaz de usuario, sin necesidad de crear un módulo personalizado.
Para nuestra aplicación de tareas pendientes, queremos seleccionar un grupo de personas para colaborar en las tareas pendientes. Primero debemos identificar a sus colaboradores estableciendo una bandera en su formulario de socio. Para hacerlo, agregue un Is Work Team? bandera al modelo de contacto (también conocido como modelo de socio, como se indica en la artículo introductorio anterior).
El modelo Contact es parte del núcleo de Odoo y está disponible incluso si aún no has instalado ninguna aplicación. Sin embargo, es posible que aún no tengas disponible la opción de menú para visitarlo.
En este punto, si la aplicación Contactos no está disponible en el menú principal, debes instalarla ahora. Esto se puede lograr en tres pasos rápidos y sencillos: abra el menú superior de Aplicaciones, busque el nombre de la aplicación e instálela.
Una vez instalada la aplicación, la opción del menú superior de la aplicación Contactos estará disponible.
Agregar un campo al modelo de datos
Comencemos agregando un campo personalizado al modelo de datos. Es importante tener en cuenta que el proceso para agregar un campo personalizado se cambió en Odoo 12, cuando se agregó la opción Ver campos al menú del desarrollador. Dependiendo de la versión con la que esté trabajando, agregar un campo seguirá una de las dos secuencias que se describen a continuación: Campos antes y después de Odoo 12.
Campos después de Odoo 12
Para acceder a Ver campos, abra la aplicación Contactos para ubicar la vista principal de Contactos. Haga clic en el icono de error de las herramientas de desarrollador y seleccione la opción Ver campos.
Campos antes de Odoo 12
Para versiones anteriores, los campos se pueden agregar y editar en Configuración | Técnico | Menú Estructura de base de datos. Puede utilizar la opción Modelos o Campos.
Creando el campo
A continuación, verá una lista con todos los campos existentes para el modelo de Contactos actual. Haga clic en el botón Crear que se encuentra en la parte superior izquierda. Complete los detalles del nuevo campo en consecuencia:
- Nombre de campo: x_is_work_team
- Etiqueta de campo: ¿Es equipo de trabajo?
- Tipo de campo: booleano
Nota:
El nombre del campo debe comenzar con el prefijo x_. Esto es obligatorio para los modelos y campos creados a partir de las herramientas de desarrollador. Las personalizaciones realizadas a través de módulos adicionales no tienen esta limitación.
Por último, haga clic en guardar y nuestro nuevo campo se agregará a la lista de campos. De forma predeterminada, la vista de lista está limitada a 80 registros, por lo que deberá usar la flecha derecha en la esquina superior izquierda para navegar a la página siguiente y ver el nuevo campo, o editar la cantidad de registros que se presentarán, ubicado al lado de las flechas de navegación de la página.
Agregar un campo a una vista de formulario
Nuestro nuevo campo ahora está disponible en el modelo Contactos (también conocido como modelo Socio), pero aún no está visible en la interfaz de usuario (UI). Es necesario darle una vista para que podamos acceder a él. Para hacer esto, lo agregaremos a la vista del formulario del contacto.
Nota:
La vista de formulario es una de las pocas vistas utilizadas por la interfaz de usuario. Para nuestros propósitos en esta sección, practicaremos cómo agregar un campo a la opción de vista del formulario únicamente. Pero no se preocupe: entraremos en mayor detalle describiendo los otros tipos de vistas en la última sección de este artículo.
Vuelva a la lista de Contactos y abra la vista del formulario, ya sea seleccionando uno de los contactos existentes o haciendo clic en el botón Crear.
Necesitamos decidir en qué parte del formulario queremos agregar el campo. Por ejemplo, podríamos agregarlo después del campo Etiquetas. Este será el punto de extensión a utilizar.
Al pasar el cursor sobre el campo nos muestra detalles técnicos útiles para el mismo, como se muestra en la siguiente captura de pantalla:
A continuación debemos ubicar el nombre técnico de ese campo. Pase el cursor sobre la etiqueta del campo para exponer el nombre del campo category_id.
Ahora podemos ampliar la vista del formulario para agregar ese campo. Haga clic en el icono de error de las herramientas de desarrollador y seleccione la opción Editar vista: formulario. Esto abre una ventana con la definición del formulario.
El campo de arquitectura de Odoo y las vistas de extensión.
En el campo Arquitectura, el XML de la vista base se hace visible. Si bien podemos editarlo directamente, los cambios se pueden perder si se actualiza el módulo que lo agrega. La forma correcta y segura de realizar los cambios deseados es crear una vista de extensión.
Cuando se instalan módulos adicionales, pueden agregar más campos y elementos visuales a la vista base. Esto se hace usando vistas de extensión, que se encuentran en la pestaña Vistas heredadas. Aquí es donde agregaremos nuestra propia extensión a la vista del formulario de contactos.
Crear la vista de extensión
En la lista Vistas heredadas, haga clic en Agregar una línea en la parte inferior y cree la vista de extensión usando estos valores:
- Ver nombre: alguna descripción breve, como extensiones de formulario de contactos para la aplicación de tareas pendientes.
- Arquitectura: un fragmento XML, que especifica un punto de extensión y el contenido a agregar. Usar:
La vista de extensión debería verse así:
Ahora haga clic en Guardar y cerrar. Si su XML es correcto, regresará a la lista Vistas heredadas, donde también se incluirá nuestra extensión. Haga clic en Guardar para finalizar los cambios del formulario y cierre la ventana Editar formulario: Ver haciendo clic en la x en la parte superior derecha.
Una vez que haya completado estos pasos, los cambios se realizarán oficialmente, pero es necesario volver a cargar el formulario para que podamos verlo. Vuelva a cargar la página con una actualización estándar y el campo ¿Is Work team? aparecerá debajo del campo Etiquetas, como se muestra a continuación:
Esto completa los pasos necesarios para agregar un campo personalizado a una vista de formulario. Recuerde que los formularios son sólo uno de los tipos de vistas disponibles; La interfaz de usuario de Odoo utiliza otros tipos de vistas, cada una de las cuales viene con su propio conjunto particular de capacidades. En la siguiente sección, analizaremos los tipos de vistas con más detalle.
Comprender los tipos de vistas de la interfaz de usuario (UI) de Odoo
Además de la vista de formulario, la interfaz de usuario también utiliza otros tipos de vistas.
Vista Kanban
El tipo de vista inicial para Contactos es una vista Kanban, que muestra los registros en tarjetas de datos. Las vistas Kanban también pueden agrupar las tarjetas en columnas. Por ejemplo, la aplicación CRM usa esto en la vista inicial, Pipeline. En una vista Kanban, el menú del desarrollador mostrará una vista Editar: opción Kanban.
Vista de árbol (o lista)
La vista de árbol, también conocida como vista de lista, muestra los registros como una lista. En una vista de lista, el menú del desarrollador mostrará una vista de edición: opción de lista.
Vista de búsqueda
La vista de búsqueda controla el comportamiento del cuadro de búsqueda, en la parte superior derecha de las vistas Kanban y Lista, y los botones debajo de él, Filtros y Agrupar por. Cuando un cuadro de búsqueda esté visible, el menú del desarrollador mostrará una opción Editar vista: ControlPanelView.
Los tipos de vistas de Odoo no se limitan a las cuatro analizadas en este artículo. Los tipos de vistas restantes disponibles se exploran en el Capítulo 10, “Vistas de backend: Diseño de la interfaz de usuario”, de Odoo 15 Fundamentos del desarrollo.
Accediendo a definiciones de vistas en Odoo
Puede acceder a todas las definiciones de Ver utilizando Configuración | Técnico | Interfaz de usuario | Opción de menú Vistas.
O, para una alternativa más enfocada, use Configuración | Técnico | Estructura de la base de datos | Modelos. Busque el modelo que queremos (res.partner o contacto en este caso) y abra el
En la pestaña de vistas vemos todas las definiciones de vista para el modelo seleccionado. Podemos ver registros para los diferentes tipos de vista, identificados por la columna Tipo de vista, y para las vistas base y sus extensiones. Cambiar o agregar registros de vista tiene efecto inmediato y los cambios serán visibles la próxima vez que se vuelva a cargar la Vista.
Ordenar la lista por tipo de vista es útil para ver juntas todas las extensiones relacionadas con el mismo tipo de vista.
La vista base es la que tiene un campo Vista heredada vacío. Un tipo de vista no se limita a una única vista base. Por ejemplo, el modelo de contacto (res.partner) tiene varias vistas base disponibles para la vista Formulario, como base.view_partner_form y base.view_partner_simple_form.
La vista también tiene un campo Secuencia. La vista base con el número de secuencia más bajo es la que se muestra de forma predeterminada. Al visitar el formulario para la definición de la vista, verá un campo con este valor de Secuencia. Las acciones de ventana, utilizadas en los elementos del menú, pueden especificar una vista base particular para usar. Como se mencionó, si no se define una vista específica, se debe usar la que tenga la secuencia más baja.
Desarrollando nuestro conocimiento sobre el desarrollo de Odoo
Ahora hemos cubierto los elementos necesarios para que pueda agregar con éxito un campo personalizado utilizando el modo de desarrollador de Odoo. En el próximo artículo, ampliaremos la base de conocimientos que hemos establecido aquí aprendiendo a agregar un nuevo modelo usando el modo de desarrollador. A partir de este momento, el orden de publicación de cada artículo está diseñado para ayudarnos a construir a partir de los detalles con los que nos hemos familiarizado hasta ahora, lo que lo convierte en un curso de cuatro artículos muy completo que sienta las bases para todo lo que necesita para comenzar a crear. Desarrollo de Odoo.
Esperamos que esta serie sobre el desarrollo de Odoo le brinde una idea del valor que le damos a la comunidad de Odoo: con herramientas poderosas como Odoo, todos podemos comenzar a establecer el camino que queremos que tomen nuestros negocios.
Esté atento a “Agregar un nuevo modelo usando el modo de desarrollador de Odoo” próximamente.
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.