En determinadas ocasiones necesitamos actualizar múltiples registros al mismo tiempo. A partir de la versión 14 de Odoo podemos editar de forma masiva los campos con dos métodos. Por un lado, el método que viene por defecto en Odoo y por otro, utilizando el módulo de OCA llamado mass_editing disponible desde la version 6.1 de Odoo (por aquel entonces OpenERP). En este post vamos a ver cómo funciona el módulo Mass Editing y lo compararemos con el método que dispone las últimas versiones de Odoo.
A continuación, podemos ver un índice con los temas que se tratan en esta entrada:
1. ¿Qué nos permite hacer Mass Editing?
4. Edición masiva de campos con Odoo (a partir de la versión 14)
1. ¿Qué nos permite hacer el módulo Mass Editing?
Con Mass Editing podemos hacer lo siguiente:
Editar en masa múltiples campos en una sola acción.
Agregar un grupo para limitar el uso de esta acción a personas determinadas.
Filtrar los elementos que el usuario puede actualizar en masa.
Editar en masa cualquier campo con widgets, como por ejemplo, campos de color o de imagen.
Cabe destacar que a partir de la versión 16 de Odoo el nombre técnico del módulo deja de llamarse mass_editing y pasa a llamarse server_action_mass_edit.
2. Configuración
Para configurar el módulo tendrá que activarse el modo desarrollador y acceder a:
Ajustes > Técnico > Acciones -> Acciones de Servidor
A continuación, crearemos una nueva acción y pulsaremos en Acción a realizar para seleccionar Mass Edit Records.
Los campos principales que hay que tener en cuenta son los siguientes:
Nombre de acción: es el nombre de la acción al que se le puede dar cualquier valor.
Modelo: es el modelo que queremos editar de forma masiva.
Acción a realizar: en este caso seleccionaremos Mass Edit Records.
Por otro lado, nos encontramos con las siguientes pestañas:
2.1 Campos
En esta pestaña podemos añadir todos los campos que queramos editar del modelo seleccionado. Tenemos los siguientes campos:
Campo: campo que queremos editar.
Opción de Widget: seleccionaremos qué widget utilizaremos, por ejemplo many2many_tags para etiquetas o color para colores.
Apply Domain: marcaremos esta casilla si queremos que se aplique el dominio del campo. También existe la posibilidad de utilizar el módulo de OCA Server Action Domain para aplicar filtros de dominio personalizados antes de ejecutar la acción en los registros.
2.2 Mensaje
En esta pestaña podremos añadir un mensaje personalizado para que salga en el asistente de edición masiva.
2.3 Seguridad
Para añadir los grupos de permisos que pueden realizar la edición masiva que estamos configurando. Esta opción es muy recomendable, ya que nos permite limitar quién puede editar los campos de forma masiva.
3. Caso de uso
Para mostrar el funcionamiento del módulo vamos a plantear el siguiente caso de uso sobre el modelo de Iniciativas / Oportunidades. El objetivo es aplicar los siguientes cambios sobre múltiples registros:
Establecer un nuevo comercial.
Eliminar el Equipo de ventas.
Añadir más Etiquetas a las oportunidades.
3.1 Creación de la acción de servidor
En primer lugar, crearemos una nueva acción de servidor con la siguiente información:
3.2 Añadir los campos que queremos editar
A continuación añadiremos los campos en la pestaña Campo que queramos editar. En este caso :
Comercial.
Equipo de ventas.
Etiquetas.
3.3 Añadir un mensaje personalizado
Este mensaje será el que se mostrará en el asistente de edición masiva. No es obligatorio introducirlo.
3.4 Configurar el grupo de permisos
Indicar los grupos de permisos que podrán realizar la edición masiva. Este paso es opcional, pero muy recomendable.
3.5 Guardar y crear una acción contextual
Una vez creada la acción de servidor deberemos pulsar en Guardar y en Crear acción contextual para que lo podamos ver desde el menú Acción del módulo de CRM.
3.5 Edición masiva de los campos seleccionados
Una vez creada la acción de servidor vamos a ver cómo ejecutarla. Para ello nos dirigiremos al módulo CRM y seleccionaremos todas las oportunidades que queramos editar. Si pulsamos en el menú Acción, podremos ver la acción que acabamos de crear Edición Masiva Iniciativa/Oportunidad.
Si pulsamos sobre esta opción veremos el siguiente asistente:
Como podemos ver, el asistente contiene toda la información que hemos configurado al crear la acción de servidor: la cabecera con el nombre de la acción de servidor, la descripción con el mensaje que hemos configurado y los campos que queremos editar con las siguientes opciones:
Establecer o Eliminar para las variables que no sean many2many.
Establecer, Eliminar o Añadir para las variables many2many.
Realizamos los cambios que queramos sobre os registros seleccionados y pulsaremos en Aplicar.
En la siguiente imagen podemos ver cómo se han modificado de forma masiva todos los registros seleccionados.
Por otro lado, si vamos a cualquiera de las oportunidades podremos ver cómo se han añadido las dos etiquetas Formación y Consultoría.
4. Edición masiva con Odoo (a partir de la versión 14)
Para ver cómo funciona la edición masiva con Odoo vamos a realizar el mismo caso de uso que hemos llevado a cabo en el apartado anterior. Es decir, desde el módulo CRM:
Establecer un nuevo comercial.
Eliminar el Equipo de ventas.
Añadir más Etiquetas a las oportunidades.
Para ello nos dirigiremos al módulo CRM, cambiaremos el tipo de vista para ver todos los registros en modo lista y seleccionaremos todos los registros que queramos editar.
4.1 Edición del campo Comercial
Para cambiar el comercial de todos los registros seleccionados pulsaremos sobre la casilla Comercial de cualquier registro seleccionado y escogeremos el nuevo comercial. A continuación, pulsaremos en Aceptar para confirmar los cambios.
4.2 Eliminación del campo equipo de ventas
Para eliminar un campo de todos los registros seleccionados, pulsaremos sobre la casilla de Equipo de ventas de cualquier registro seleccionado y borraremos el campo para dejar la casilla vacía. A continuación pulsaremos Enter y confirmamos los cambios pulsando en Aceptar.
4.3 Añadir más etiquetas
En este caso Odoo solo nos permite editar de forma masiva las etiquetas de tal manera que todos los registros seleccionados tengan las mismas etiquetas. Es decir, no nos permite añadir más etiquetas, si no editar el campo etiquetas para que todos los registros seleccionados tengan las mismas.
Para editarlas seleccionaremos cualquier casilla de Etiquetas y seleccionaremos las etiquetas que queramos. A continuación, confirmaremos los cambios pulsando en Aceptar.
5. Comparación entre los dos métodos
Después de realizar el mismo caso de uso utilizando los dos métodos hemos observado las siguiente ventaja de utilizar Odoo en vez de el módulo de Mass Editing:
No requiere de ninguna configuración previa. Por lo tanto, si solo vamos a utilizar la edición masiva de forma ocasional y para los campos que aparecen en la vista lista, la mejor opción es usar Odoo.
Por otro lado, hemos encontrado las siguientes ventajas de utilizar el módulo de Mass Editing con respecto a Odoo:
Nos permite añadir campos en las variables many2many.
Nos permite utilizar los widgets de los campos como por ejemplo, many2many_tags o color.
Podemos editar cualquier campo de forma masiva, no solo aquellos que aparecen en la vista tree.
Posibilidad de configurar un grupo de permisos para cada acción de servidor.
Por lo tanto, si vamos a utilizar de forma habitual la edición masiva de campos, vemos muy recomendable utilizar el módulo de Mass Editing.