Cómo añadir un campo a un formulario en Odoo sin programar

nuevo_campo_odoo_12

ACTUALIZACIÓN: Ahora explicamos como hacerlo en Odoo v8 y v10/11/12/13

Las pantallas corresponden a la versión 12 Community con nuestra personalización.

Emergencia!! El comercial necesita poder registrar hoy el nombre de la mascota del cliente para la campaña que se lanza mañana!!

Seguro que esto os ha pasado alguna vez, versión de urgencia, despliegue en horario de oficina, corte del servicio, los usuarios como motos… Con Odoo tenemos una alternativa, podremos hacer los cambios “al vuelo” y solucionarlo en 15 minutos, no es lo más recomendable, y debemos tomar todas las precauciones posibles (backups, hacerlo primero en un entorno de preproducción, documentar los cambios…).

Bien, vamos a ello. La primera alternativa obvia sería utilizar un campo existente en el sistema para almacenar esta información temporalmente y salir del paso, pero si no tenemos uno disponible o necesitamos poder realizar búsquedas por ese campo, darle formato o que tire de una lista de valores nos veremos obligados a añadir un nuevo campo.

Lo primero que necesitamos saber es a qué modelo (objeto de Odoo) tenemos que añadir el campo. Para ello arrancaremos el “Modo Desarrollador” de Odoo:

  • En la versión 8: desplegamos el menú de opciones de nuestro usuario y pulsamos en “Acerca de Odoo”, en el diálogo que se abre pulsamos en la esquina superior derecha “Activar Modo Desarrollador”.
  • En versiones posteriores: Vamos al módulo de “Ajustes” y pulsamos el enlace en el dashboard.
activar_modo_desarrollador_odoo_12

Ahora iremos al apartado donde queremos añadir el campo, en nuestro caso a la ficha de cliente y desplegamos el menú de desarrollador que ha aparecido arriba a la izquierda, seleccionamos “Ver Campos”, esto abre una pantalla con todos los campos del modelo.

Estamos listos para añadir el campo:

  • En la versión 8: Vamos al menú Configuración>Técnico>Estructura de la base de datos>Modelos (debemos hacerlo con un usuario que tenga el permiso de “Características técnicas” habilitado), y buscamos “res.partner”. Accedemos al registro correspondiente, pulsamos “Editar” y añadimos un elemento en la lista de campos inferior.
  • En versiones posteriores: En la pantalla con la lista de campos pulsamos en “Crear”
crear_campo_odoo_12

Vamos a cubrir los valores:

  • Nombre: en nuestro caso pondremos x_nombreMascota (dejamos la x_ al principio para indicar que son campos personalizados)
  • Etiqueta de Campo: La etiqueta a mostrar en los formularios, “Nombre Mascota”.
  • Tipo de campo: En este caso seleccionaremos Carácter, si quisiéramos una listas de valores, marcaríamos “seleccion” y nos abre un campo para cargar las opciones posibles.
  • Requerido: lo dejaremos sin marcar
  • Sólo lectura: lo mismo
  • Seguimiento: Si queremos que los cambios de valores de este campo se registren en el log del modelo.
  • Traducible: Podemos marcarlo si utilizamos varios idiomas

Ahora pulsamos en “Guardar”. Ahora volveremos a la ficha del cliente para añadir el campo al formulario de datos.

En la ficha de cliente desplegamos el menú de desarrollador y elegimos “Editar Vista: Formulario” o “Editar Form Vista”.

Esta es la parte más complicada, lo más cómodo es añadir el campo debajo de uno existente, para ello copiaremos la sección de xml de ese campo y la pegaremos a continuación, sustituyendo el nombre del campo por el nuevo “x_nombreMascota”, por ejemplo antes de “Lenguaje” (lang). Pulsamos Guardar abajo, y al recargar la ficha de cliente (F5) “voilà!” ya está nuestro nuevo campo, podemos editar y darle valor.

nuevo_campo_odoo_12

A continuación vamos a hacer lo mismo para que aparezca en los listados de clientes. Para ello, vamos al listado de clientes (si lo tenemos en vista Kanban cambiamos a vista lista), e igual que antes, desplegamos menú desarrollador, y elegimos “Editar Vista: Lista” o “Editar treeVista”.

anadir_campo_vista_tree_odoo_12

Tal como hicimos antes añadimos el campo donde queramos, guardamos y ya podemos ver el cambio. Ahora podemos ordenar por ese campo y utilizar el filtro de búsqueda avanzado para buscar por él. Ya tenemos a nuestro comercial contento, crisis solventada en menos de media hora.

De todos modos vuelvo a recordar que esta forma de trabajar no es lo aconsejable, nos puede servir para salir del paso, pero una vez pasado el agobio debemos trasladar los cambios a un módulo python extendiendo el modelo res.partner y las vistas afectadas. Con esto evitaremos problemas futuros de conflictos y pérdida de cambios.

Si quieres que te ayudemos con algún desarrollo para tu Odoo, no dudes en contactarnos

También puedes ver nuestros servicios de Desarrollo Odoo aquí

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Abrir chat
1
¿Necesitas ayuda?
Hola,
¿En qué podemos ayudarte?