Important moltes variables en una llista d'un formulari a Nextcloud mitjançant SQL

Creant una llista d'opcions múltiple amb moltes variables a Nextcloud

En este xicotet article explique la solució que he fet per crear un formulari Nextcloud amb una llista que mostra més de 150 variables sense haver-les d'escriure manualment.

Crear formularis amb Nextcloud és molt senzill i molt potent, perquè pots fer qüestionaris diversos i després enviar-ho per correu electrònic als teus usuaris, i des de la part privada visualitzaràs les respostes i les podràs exportar en format CSV, igual que també fa l'aplicació de Google Forms. Però a mi m'agrada molt més Nextcloud perquè ho tenim instal·lat i controlat ací a la nostra xarxa i no compartim les dades a servidors que no sabem on estan ni qui els gestiona.

Una vegada fas un formulari, pots compartir-lo amb alguns usuaris en concret o obrir-los per a tots els usuaris (usuaris anònims) de manera que pots rebre centenars de respostes i anar catalogant-les al teu gust des de LibreOffice o un altre full de càlcul que puga editar fitxers CSV de manera visual.

Per defecte, als formularis de Nextcloud podem afegir camps com checkbox, llistes d'opcions múltiple, camps de data, camps de text, etc, tal i com mostra la següent captura de pantalla a l'hora d'afegir una nova opció del formulari:

imatge de tots els camps que podem fer servir als formularis de Nextcloud

El problema és que, al contrari que a Google Forms on sí es pot fer, no pots emplenar un camp de llista (listbox) amb moltes variables, sinó que has d'escriure-les una a una, i això no era sostenible per al nostre treball ja que hem d'escriure tots els ajuntaments de la província de Castelló, totes les mancomunitats i alguns consorcis i altres organismes, i seria una pèrdua de temps o una font d'error en cas de que deixem que els usuaris escriguen manualment el nom de la seua organització.

Hem estat investigant però NextCloud no permet fer això, aleshores ha calgut fer una xicoteta investigació. Primer de tot, hem mirat l'estructura de dades de la instal·lació (que tenim a la ruta /var/www/html/nextcloud) però els formularis no deixen cap fitxer en text pla en el servidor.
I després he vist la llum, en la base de dades MariaDB he vist la taula oc_forms_v2_forms on estan tots els formularis de tots els usuaris, i també la taula oc_forms_v2_options on estan tots els camps listbox de tots els formularis.

A la taula oc_forms_v2_options, he vist que el meu camp listbox tenia el camp question_id número 253, aleshores nomès m'ha calgut insertar al vol tots els camps que necessitava.

Al final he fet:


INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Aín');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Albocàsser');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Alcalà de Xivert');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Alcora, l\'');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Alcudia de Veo');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Alfondeguilla');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Algimia de Almonacid');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Almassora');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Almedíjar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Almenara');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Alqueries, les/Alquerías del Niño Perdido');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Altura');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Arañuel');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Ares del Maestrat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Argelita');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Artana');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Atzeneta del Maestrat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Ayódar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Azuébar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Ballestar (Pobla de Benifassà)');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Barracas');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Bejís');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Benafer');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Benafigos');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Benassal');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Benicarló');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Benicàssim');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Benlloc');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Betxí');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Borriana/Burriana');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Borriol');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Cabanes');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Càlig');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Canet lo Roig');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Castell de Cabres');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Castellfort');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Castellnovo');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Castelló/Castellón de la Plana');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Castillo de Villamalefa');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Catí');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Caudiel');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Cervera del Maestre');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Chilches/Xilxes');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Chóvar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Cinctorres');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Cirat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Cortes de Arenoso');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Costur');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Coves de Vinromà , les');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Culla');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Eslida');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Espadilla');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Fanzara');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Figueroles');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Forcall');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Fuente la Reina');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Fuentes de Ayódar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Gaibiel');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Geldo');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Herbers');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Higueras');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Jana, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Jérica');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Llosa, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Llucena/Lucena del Cid');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Ludiente');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mata de Morella, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Matet');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Moncofa');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Montán');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Montanejos');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Morella');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Navajas');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Nules');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Olocau del Rey');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Onda');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Orpesa/Oropesa del Mar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Palanques');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Pavías');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Peñíscola');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Pina de Montalgrao');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Pobla de Benifassà , la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Pobla de Tornesa, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Portell de Morella');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Puebla de Arenoso');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Ribesalbes');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Rossell');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Sacañet');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Salzadella, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'San Rafael del Río');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Sant Joan de Moró');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Sant Jordi/San Jorge');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Sant Mateu');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Santa Magdalena de Pulpis');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Segorbe');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Serratella, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Sierra Engarcerán');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Soneja');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Sot de Ferrer');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Suera/Sueras');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Tales');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Teresa');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Tírig');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Todolella');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Toga');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Toràs');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Toro, El');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Torralba del Pinar');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Torre d\'En Besora, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Torre d\'en Doménec, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Torreblanca');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Torrechiva');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Traiguera');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Useres, les/Useras');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vall d\'Alba');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vall d\'Uixò');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vall de Almonacid');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vallat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vallibona');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vila-real');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vilafamés');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vilafranca/Villafranca del Cid');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vilanova d\'Alcolea');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vilar de Canes');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vilavella, la');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Villahermosa del Río');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Villamalur');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Villanueva de Viver');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Villores');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vinaròs');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Vistabella del Maestrat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Viver');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Xert');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Xodos/Chodos');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Zorita del Maestrazgo');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Zucaina');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad Alt Maestrat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad Baix Maestrat');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad Castelló Nord');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad de la Plana de l'Arc');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad de la Taula del Sénia');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad Espadán-Mijares');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad intermuncipal para promoción turística de la comarca del Maestrazgo Castellón-Teruel');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad intermunicipal del Alto Mijares');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad intermunicipal del Alto Palancia');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad L\'Alcalatén-Alto Mijares');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad Plana Alta');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunidad Río Mijares');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunitat Comarcal Els Ports');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunitat de Penyagolosa-Pobles del Nord');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Mancomunitat Plana Espadà');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'OAL - Patronat de Música de Morella');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'OAL - Museu Art Contemporani Vilafamés');
INSERT INTO oc_forms_v2_options (question_id, text) VALUES ('253', 'Consorcio gestor pacto cerámico');

I el resultat és veure aquesta importació en el camp de tipus listbox del nostre formulari de Netcloud, tal i com mostra la següent captura de pantalla, d'aquesta manera ja no hi ha possiblitat d'error per part dels usuaris i els noms dels organismes sempre seran correctes:

resultat del camp listbox amb moltes variables importades amb SQL

ARTICLES RELACIONATS:

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.

Utilitats

NAVEGACIÓ SENSE RATOLÍ

- Tab següent enllaç.
- Shift+Tab anterior enllaç.
- Enter activa l'enllaç.
- Alt+esquerra anar arrere.

CONTRAST DE COLORS

Accessibilitat - Color Negre
Accessibilitat - Color Groc
Accessibilitat - Color Verd

Accessibilitat - Color Blau
Accessibilitat - Color Crema
Accessibilitat - Color Blanc

 

PORTADES ALTERNATIVES