remoteSelect¶
La remoteSelect
è una variante della dbSelect che non si collega però al database della nostra istanza per leggere dei valori, bensì a un metodo, che utilizzeremo poi per fare le dovute chiamate al database remoto.
La remoteSelect può essere per esempio utilizzata per connettersi a un service esterno e recuperare delle informazioni da visualizzare. Supponiamo per esempio di volerci collegare a un database cinematografico e reperire alcuni dati di un film. Dalla tendina accederemo direttamente a quel database, ma esattamente come se fossimo in una dbSelect di Genropy:
Nell’esempio abbiamo un formbuilder con una remoteSelect, dove specifichiamo un method
, ovvero il metodo che vogliamo utilizzare, e che andremo poi a definire subito sotto, infine con auxColumns
faremo visualizzare non solo la colonna di default con l’id del film, ma anche una colonna con il titolo e con l’anno, questo al fine di facilitare la selezione da parte dell’utente.
Si noti che il metodo riceve dalla nostra remoteSelect una _querystring
, che sarebbero i caratteri digitati dall’utente. La remoteSelect si aspetta come risultato una tupla composta da una Bag dei valori compatibili con la querystring e un dizionario con le colonne che abbiamo indicato come auxColumns.
Parametri:
Nome parametro |
Tipo |
Descrizione |
---|---|---|
hasDownArrow |
B |
True or False, permette di indicare se il campo mostrerà o meno una tendina |
selected_ |
T |
It’s a prefix for kwargs. The parameter value is the datapath you want the column’s value copied into. i.e. selected_firstname=»myfriend.firstname» |
Html Parametri |
||
_class |
T |
Permette di assegnare una specifica classe CSS al widget |
height |
T |
Permette di assegnare un’altezza al widget |
width |
T |
Permette di assegnare una larghezza al widget |
border |
T |
Permette di assegnare un bordo al widget |
rounded |
L |
Permette di assegnare un arrotondamento al widget |
style |
T |
Permette di assegnare uno stile (da esprimersi come serie di attributi CSS) al widget |
background |
T |
Permette di assegnare uno sfondo al widget |
Validations Parametri |
||
validate_empty |
T |
Restituisce un errore se il valore è nullo o è una stringa vuota |
validate_notnull |
B |
Restituisce un errore se il campo è vuoto |
validate_call |
T |
Restituisce un errore js |
validate_regex |
T |
Restituisce un errore se il campo corrisponde esattamente a quanto indicato |
validate_remote |
T |
Metodo RPC che effettua la validazione del valore inserito |
Common Parametri |
||
value |
T |
Permette di inserire un valore, in termini assoluti (es. value=”Pippo”) o posizionali (es. value=”^.name”). Nel primo caso verrà assegnato il valore “Pippo”, nel secondo verrà assegnato a “name” il valore che inseriremo nell’inputfield. |
lbl |
T |
Permette di inserire un’etichetta per il campo. Per div, caselle e aree di testo la «lbl» verrà visualizzata prima del campo, per le checkbox invece verrà mostrata dopo. |
lbl_ |
T |
Permette di assegnare attributi alla lbl (es: «lbl_class») |
default |
T |
Valore di default se non modificato |
placeholder |
T |
Testo di anteprima (non rappresenta un valore inserito ma solo un suggerimento) |
disabled |
B |
Permette di disabilitare il campo. Es: disabled=True |
tabindex |
L |
In un formbuilder con una serie di campi, permette di dare un ordinamento personalizzato nella compilazione nel passaggio da un campo a un altro con il tabulatore (es: tabindex=4) |
_autoselect |
B |
Se impostato a True, alla selezione del campo il contenuto del campo sarà automaticamente selezionato |
dbSelect Parametri |
||
emptyLabel |
T |
Permette di personalizzare la label della riga vuota (es: emptyLabel=”Nuovo record”) |
emptyLabel_ |
T |
Permette di aggiungere dei parametri personalizzati alla emptyLabel (es: emptyLabel_first=True per posizionare la emptyLabel all’inizio, e emptyLabel_class per assegnare una classe css particolare) |
alternatePkey |
T |
Permette di indicare una colonna della tabella da salvare al path indicato in alternativa alla pkey (es: alternatePkey=”code”) |
zoom |
B |
Di default True, se impostato a False viene disabilitata la freccina accanto alla label che permette di aprire in modalità dialog il TableHandler della tabella a cui si riferisce il widget |
rowcaption |
T |
Overrides table’s rowcaption. It’s a table’s column or columns that represents the rowinstead of record’s pkey. i.e. fullname instead of id. |
selectedCb |
T |
A javascript callback function called when a record is selected with dbselect. The callback receives an item containing the selected record with all columns added in column, auxcolumns and hiddencolumns. |
Query Parametri |
||
dbtable |
T |
(deprecato, sostituito da «table») |
table |
T |
Indica la tabella da cui reperire i dati, nella forma «package.table» |
columns |
T |
Le colonne su cui effettuare la query |
auxColumns |
T |
Per personalizzare l’anteprima dei risultati della query, è possibile mostrare subito altre colonne da visualizzare |
condition |
T |
È possibile personalizzare la query con una «condition» equivalente a una WHERE in SQL |
condition_ |
T |
Permette di passare i parametri alla condition |
weakCondition |
B |
If there are no results applying the condition parameter, the condition is relaxed. |
hiddencolumns |
T |
Per personalizzare l’anteprima dei risultati della query, è possibile nascondere subito alcune colonne |
limit |
L |
Per personalizzare l’anteprima dei risultati della query, è possibile indicare un numero massimo di risultati (di default: 10) |
order_by |
T |
Corresponding to the sql «ORDER BY» operator |
remoteSelect Parametri |
||
method |
T |
Permette di indicare il metodo da utilizzare per la ricerca dei dati. Il metodo deve restituire una tupla contenente la Bag dei risultati e un dizionario delle colonne |
Autore della sezione: Davide Paci