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ámetrolabel
.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"