Salta el contingut

Widgets DatabaseLayer

Para poder editar los datos en las DatabaseLayer, el administrador permite definir el widget necesario para cada campo. Es decir, podemos configurar cómo el usuario podrá ingresar los valores y qué valores serán aceptados. La configuración de los widgets se realiza desde la pestaña “Campos” de una DatabaseLayer:

  1. Seleccionar el widget.
  2. Configurar las opciones del widget según el tipo elegido.

Captura de pantalla


A continuación se muestran los widgets disponibles en la aplicación:

  • Automático: la aplicación configura automáticamente el widget más adecuado según el tipo de datos del campo: numérico, texto, fecha, …
  • Campo enlazado: para tomar el valor de otro campo. Por ejemplo, en una capa hay un código y una descripción, y queremos modificar automáticamente la descripción al modificar el código.
{
    "source": "type_id"
}
  • Clave foránea: para apuntar al “padre” en una relación 1:N. Por ejemplo, una tabla de incidencias de árboles tiene una clave foránea al árbol origen de la incidencia. Con esto conseguimos la geometría del árbol.
{
    "dblayer": "layername",
    "to_field": "id",
    "geom": true
}
  • Fecha: para introducir campos de fechas. En las opciones podemos especificar el formato de trabajo.
  • Fecha de creación: sirve para que se guarde automáticamente la fecha de creación de un elemento en este campo. Solo al crear el elemento.
  • Fecha de modificación: sirve para que se guarde automáticamente la fecha de modificación de un elemento en este campo.
  • Fecha y hora: para introducir fechas y horas.
  • Fecha y hora de creación: sirve para que se guarde automáticamente la fecha y hora de creación de un elemento en este campo. Solo al crear el elemento.
  • Fecha y hora de modificación: sirve para que se guarde automáticamente la fecha y hora de modificación de un elemento en este campo.
{
    "format": "YYYY-MM-DD", //Ejemplo 1
    "format": "YYYY-MM-DD HH:mm:ss", //Ejemplo 2
    ...
}
  • Elegir mediante consulta SQL: Esta opción crea una tabla con los valores que puede tener el campo. El listado de valores se obtiene a partir de una consulta postgresql. En las configuraciones debemos especificar la consulta SQL (query) con los campos que se quieren utilizar y la tabla de donde sacar los valores. La etiqueta (label) es lo que verá el usuario y se guardará en la base de datos. Para definir los valores que se verán en la tabla definiremos el encabezado (table_headers) con el nombre del campo que queremos ver y la etiqueta que veremos al formulario.

    Por ejemplo, si quisiéramos elegir asignar el nombre científico de un árbol de una tabla donde tenemos todos los tipos, haríamos lo siguiente:
{
    "query": "select genero, nombre_cientifico, nombres_comunes from tipo_arbolado",
    "label": "{nombre_cientifico}",
    "table_headers": [{"genero": "Género"}, {"nombre_cientifico": "Nombres científicos"}, {"nombres_comunes": "Nombres comunes"}] // mapea los campos a las columnas y les asigna una etiqueta
}
Género Nombres científicos Nombres comunes
Pinus Pinus halepensis pino blanco
Pinus Pinus sylvestris pino rojo
Abies Abies alba abeto blanco, abeto común, abeto de España
Larix Larix decidua alerce, pino albar, pino laricio

Cuando se elige uno, “{nombre_cientifico}” se guardará en la base de datos.

  • Elegir: un valor por línea: permite elegir directamente uno de los valores introducidos en las configuraciones. Cada nueva línea será un valor que el usuario podrá elegir. En cada línea debemos indicar la clave (valor guardado en la base de datos) y el valor (texto que verá el usuario) separados por comas. Por ejemplo:
key1,value1
key2,value2

VEG, Vegetació
COM, Comunicació
...
  • Imagen: para permitir al usuario añadir imágenes en el modo edición.
{
    "upload_root": "<auto>", // Carpeta donde se suben las fotos
    "base_url": "<auto>", // Base de la URL donde se sirven las fotografías
    "thumbnail_root": "<auto>", // Carpeta donde se guardan las miniaturas (thumbnails)
    "thumbnail_base_url": "<auto>", // Base de la URL donde se sirven las fotografías
    "upload_size": 1024 // Tamaño máximo (altura o anchura) de la imagen

}

Por ejemplo:

// No se especifica la URL, se pone automáticamente
{
    "upload_root": "/data/apps/giscube-admin/media/layerserver/capa/img",
    "thumbnail_root": "/data/apps/giscube-admin/media/layerserver/capa/thumbnail",
    "upload_size": 1024 
}
  • Usuario de creación: guarda en el campo el username del usuario que ha creado un elemento.
  • Usuario de modificación: guarda en el campo el username del usuario que ha modificado un elemento.
  • Valores diferentes: toma los valores diferentes (únicos) de un campo, por ejemplo, proveedor, tipo o clase, y los deja elegir. Tiene una opción para indicar si podemos añadir nuevos valores o no.
{
    "allow_add_new": true
}
  • Relación 1 a muchos: para enlazar una capa padre con su hijo. Por ejemplo, una tabla de árboles con las n incidencias de cada árbol. Desde el formulario de edición podremos acceder a las incidencias del árbol.
{
    "dblayer": "layername",
    "to_field": "id",
    "dblayer_fk": "parent_id",
    "count": false
}