Elementos

Declaración

Los elementos se deben declarar en el archivo YAML bajo la entrada de elements. Cada elemento es declarado por su identificador, y su definición es:

  • una lista de parámetros, por ejemplo:

    elements:
        do_something:
            type: ACTION
            label: Do something
    
  • o simplemente una cadena, en cuyo caso Rapido asumirá que es el parámetro type, por ejemplo:

    elements:
        message: BASIC
    

    es equivalente a:

    elements:
        message:
            type: BASIC
    

Tipos

Hay diferentes tipos de elementos (definidos por el parámetro type):

  • BASIC: una pieza de HTML devuelta por su función de implementación.
  • ACTION: un botón que ejecutará la función de implementación al hacer clic. Su etiqueta viene dada por el parámetro label.
  • TEXT: un campo de entrada de texto.
  • NUMBER: un campo de entrada numérico.
  • DATETIME: un campo de entrada de fecha / hora.

Elementos de entrada

Los elementos de entrada (es decir, TEXT, NUMBER, o DATETIME) se pueden indexar como field o text. La indexación se indica utilizando el parámetro index_type.

De forma predeterminada, los elementos de entrada son editables pero también pueden tener un mode diferente:

  • COMPUTED_ON_SAVE: el valor se calcula cada vez que se guarda el registro,
  • COMPUTED_ON_CREATION: el valor se calcula cuando se crea el registro.

Elementos de acción

Los elementos de acción se representan como botones de envío y permiten activar una llamada a una función asociada de Python.

Si la función devuelve un valor, debe ser una cadena y se utilizará como dirección URL de redirección para la solicitud actual.

Esta es la forma de redirigir a otra ubicación una vez que se ha ejecutado la acción.

Acciones adicionales

Las siguientes acciones se pueden incluir en nuestro diseño HTML de bloque y no requieren una función asociada de Python:

  • _save: crea un registro basado en los valores enviados de los elementos de campo y luego redirige a la visualización de registros en modo de lectura;
  • _edit: abre el registro actual en modo de edición;
  • _delete: elimina el registro actual.

Llamada HTTP directa a elementos

Normalmente queremos mostrar bloques, pero también podemos llamar a un elemento por su dirección URL:

Se admiten las solicitudes GET y POST.

Si el elemento es una acción, se ejecutará su función Python; El valor devuelto se supone que es una cadena y se utilizará como una dirección URL de redirección. Al construir una aplicación, nos permite crear enlaces que redirigirán al usuario a la ubicación correcta dependiendo de nuestros criterios de negocio (por ejemplo, si el usuario pertenece al grupo A, vaya a la page1, o bien vaya a la página page2).

Si el elemento no es una acción, su función Python se ejecutará y el resultado se devolverá como una respuesta.

Nota

Podemos cambiar el tipo de contenido de respuesta como este:

def my_element(context):
    context.request.reponse.setHeader('content-type', 'text/csv')
    return "one,two,three\n1,2,3"