Saltar la navegación

Vistas form

Formularios

Los formularios nos permitirán crear vistas para introducir datos a nuestro modelo. En este tipo de interfaces, se muestra un solo registro, cuyos campos se distribuyen en la pantalla siguiendo siempre el mismo criterio, normalmente de izquierda a derecha y de arriba a abajo, de acuerdo con el orden en que son descritos en la vista.

Sin embargo, además de los campos a mostrar, podemos utilizar tanto elementos de diseño o estructurales, como semánticos que modifican el aspecto de las vistas. Algunos de estos elementos son:

Estructurales

  • mode: tipo de vistas que va a permitir el objeto.
  • name: nombre del campo tal y como aparece en el modelo.
  • separator: agrega una línea de separación en el formato, ejemplo:
<separator string="link" colspan="4" />

* El atributo string define la etiqueta del separador y el atributo colspan define su tamaño.

  • group: agrupa campos. Cada contenedor tiene por defecto 4 columnas y cada field se compone de dos, la etiqueta y el valor. Nos permite realizar composiciones diferentes utilizando el atributo col y colspan.
  • sheet: formato página en el formulario. 
  • notebook: permite distribuir los campos de la vista en diferentes pestañas o tabs que van definidos por páginas, ejemplo:
<notebook colspan="4">

<page string="">...</page>

...

</notebook>


Semánticos

  • button: muestra un botón
    • icon: mostrar un icono
    • string: el texto del botón o el popup del mismo si hay definido un icon
    • type:
      • workflow (defecto): envía una señal al workflow. El name del botón es la señal pasada al workflow. El registro de fila se pasa junto a la señal de workflow
      • object: llama a un método del modelo. El name del botón es el nombre del método. El registro de la fila actual se pasa al método.
      • action: carga y ejecuta una accion ir.actions. El name del botón es el id de una acción definida.
    • name
    • args
    • attrs
    • states: requiere que el modelo defina el campo states. Combinado con attrs, debe contener una lista de estados posibles. Si el botón no está en uno de esos estados no se muestra.
    • context
    • confirm: mensaje a mostrar para al confirmar una acción.
  • field
    • name: nombre del campo en el modelo
    • string: título del campo a mostrar. Por defecto toma el definido en el modelo.
    • invisible: campos que se almacenan pero no se muestran en la columna.
    • sum,avg ( en vistas tree): muestra la función agregada correspondiente al final de la columna. Solo se calcula de los campos mostrados. La agregación debe corresponderse con el grupo correspondiente.
    • groups: lista los grupos que deberían poder ver el campo
    • widget: vista alternativa del campo. Los posibles valores son:
      • progressbar: para los campos float
      • many2onebutton: reemplaza el campo por un check si el campo se completa.
      • handle: para sequences. Muestra un icono en lugar del valor.
    • attrs: paso de valores para ciertos campos
    • class:
      • oe_inline: para que se muestre en una única línea.
      • oe_left, oe_right
      • oe_read_only, oe_edit_only
      • oe_no_button: para no mostrar el botón de navegación en campos many2one
      • oe_avatar: en campos imagen, los muestra como 90x90
    • onchange: deprecated. Usar el método odoo.api.onchange() en el modelo
    • options: objeto JSON pasando opciones
    • domain: únicamente para campos relacionales. Filtra por un campo.
    • context: únicamente para campos relacionales.
    • readonly
    • required
    • nolabel
    • placeholder: mensaje a mostrar en campos vacíos.
    • mode: por defecto tree. En campos relacionales especifica el tipo de vista.
    • help: mensaje del popup
    • filename: para campos binarios contiene el nombre del fichero.
    • password

<form>
<header> ... content of the status bar  ... </header>
<sheet>  ... content of the sheet       ... </sheet>
<div class="oe_chatter"> ... content of the bottom part ... </div>
</form>

En el siguiente vídeo encontrarás información detallada de este tipo de vistas.

Alexandre Ibáñez López. Vistas form (CC BY-NC-SA)

Para saber más

Cuando trabajamos con este tipo de vistas, es importante el diseño que le damos a los elementos. Para comprender mejor cómo organiza Odoo las filas/columnas en un formulario y cómo modificar el comportamiento por defecto, es conveniente que consultes el último apartado de la unidad Retoques finales: otras vistas y visualices los primeros minutos del vídeo que incorpora. 

Tarea

Duración:
00:30
Agrupamiento:
1

Una vez definida la vista tree, la vista form puede generarse de manera automática haciendo doble clic sobre cada registro. No obstante, vamos a definirnos un record con la vista form básica para cada modelo.

Tarea Avanzada

Duración:
00:30
Agrupamiento:
1

Una vez comprobada nuestra vista form, vamos a trabajarla más incluyendo algunos campos semánticos y estructurales.  Trata de organizar la vista de una manera atractiva y cómoda para el usuario.

Consejo: puedes visualizar los primeros minutos del último vídeo Retoques finales. En este vídeo encontrarás como modificar la disposición de los elementos para mejorar la apariencia básica de los formularios en Odoo.

Creado con eXeLearning (Ventana nueva)