Custom widget "Intra form" : Formulaire interne

Hello :slight_smile:

Nouveautés

Corrections

  • accepter la virgule comme séparateur de décimales (merci @Bozon)
  • si un booléen est obligatoire, forcer la coche de la case / valeur True (merci @Arnault)
  • sécurisation des champs : Trim + suppression des caractères de contrôle invisibles + limite à 50000 caractères max

Audit du code

Nous avons commencé à relire le code avec @florent.fayolle, nous devons encore y travailler, on vous tiendra au courant dès que l’ajout à la bibli officielle sera fait !

Liste des demandes

Les demandes de fonctionnalités sont listées ici : https://github.com/maluhialoha/grist-cw-intra-form/issues, n’hésitez-pas à écrire dans ce fil ou sur github si vous avez d’autres besoins !

5 « J'aime »

Bonsoir,
Merci bcp c’est parfait !

1 « J'aime »

Merci beaucoup, je l’utilise et c’est vraiment top pour les agents en interne qui ne sont pas familiarisés à Grist. Par contre, oups, j’ai voulu rajouter le champ date et heure pour une visualisation plus fine dans le calendrier, et… ça ne marche pas…

Bonjour Fanny, effectivement le type date et géré mais date+heure n’est pas encore supporté ! Je vais m’en occuper. Merci de ces retours :slight_smile:

Bonjour
merci pour ce widget très pratique. il me reste un petit détail à régler : les conditions de mes colonnes ne remontent pas dans le formulaire (ni celui-ci ni le formulaire de base de Grist). ex : quand un des réseaux est sélectionné dans un menu déroulant, seules les structures appartenant à ce réseau s’affichent dans le menu déroulant suivant. cela fonctionne dans la table des données.

Merci d’avance

Merci Aude, je me suis débrouillée avec un calcul en ajoutant une case matin/après-midi :), ça marche, les collègues trouvent ça pratique! (c’est un bête tableau de recensement de congés pour remplacer les souhaits sur excel…)

1 « J'aime »

Bonjour,
Merci de vos retours et bienvenue sur le forum :partying_face:

Pour les conditions sur référence, c’est déjà dans la todo ici :

Filtering Reference choices in dropdown lists · Issue #8 · maluhialoha/grist-cw-intra-form · GitHub

Bonne journée !

2 « J'aime »

Bonjour @audezu,

Peut on considérer ce widget comme « audité » et peut on l’utiliser sur l’instance Dinum ?
Merci d’avance.

2 « J'aime »

Bonjour @audezu , avez-vous des nouvelles concernant l’ajout à la bibliothèque des widgets des instances dinum et anct ?

je suis très intéressée pour utiliser votre solution de formulaire avec possibilité d’ajouter des conditions d’affichage.

Merci

Bonjour @MarieLaure @JCE

Le widget est désormais audité, mais il faut l’importer dans la bibliothèque des instances DINUM et ANCT avec un peu de configuration, @florent.fayolle est sur le coup, ce sera probablement pour cette semaine. On vous tient au courant dès que c’est dispo.

Merci beaucoup de votre patience !

3 « J'aime »

Le widget est disponible dans la bibli officielle :tada:

Le widget « Formulaire interne » (aka « intra-form ») est officiellement disponible dans les bibliothèques des instances DINUM et ANCT :heart: Un très grand merci à @florent.fayolle :pray:

Vous pouvez l’ajouter en cliquant sur Nouveau > Ajouter une vue > Personnalisée > Formulaire interne. Il faut ensuite accepter l’accès au document dans le panneau de création (panneau latéral droit).

Et quoi de mieux pour annoncer sa disponibilité…qu’un formulaire interne ?

Merci de votre patience et bon gristage !

PS : comme toujours n’hésitez-pas à remonter tout bug, régression ou demande de fonctionnalité, ici ou sur github Issues · gristgouv/grist-cw-intra-form · GitHub

3 « J'aime »

Hello !
J’ai une table à laquelle mes utilisateurs n’ont aucun droit. Pourtant, j’aimerai leur afficher un formulaire de saisie d’information. J’avais réussi à trouver une astuce via les formulaires Grist normaux : le formulaire à remplir était dans le widget webpage associé à une table auquel tout le monde a accès.
Est-ce possible d’arriver à mes fins avec ce nouveau formulaire ?

Hello :slight_smile: non, comme le formulaire est interne il agit comme toute autre vue : il ne pourra pas alimenter une table sur laquelle l’utilisateur n’a pas les droits en écriture, il y aura une erreur « Blocked by access rules ».

Ce que tu pourrais faire par contre, si c’est acceptable pour toi que les utilisateurs puissent lire leurs propres données (mais tu peux même limiter cela en ne créant pas de vues de ta table, donc il faudrait qu’ils aient l’idée d’aller dans les données source) :

  • dans la table, ajouter une colonne pour récupérer le mail de l’utilisateur qui soumet sa réponse (formule d’initialisation user.Email)
  • créer des permissions sur la table pour donner un accès seulement en lecture et ajout de ligne (R et C) avec user.Email == rec.Email. Et ne pas donner les droits de modification et suppression (U et D)

Tu peux aussi utiliser l’id de session (user.SessionID) au lieu du mail, pour qu’ils n’aient accès qu’à leurs propres données de la session en cours uniquement.

2 « J'aime »

Merci Aude, toujours à la pointe ! Avec ça, je devrais pouvoir m’en sortir !

1 « J'aime »

C’est génial.
Il me manque bien quelques bricoles :innocent: pour mon modèle de gestion de projet mais je vois que tout est dans le backlog sur github. Trop cool.

1 « J'aime »

Bonjour,

Pour information, ci-dessous les propositions de code que j’ai faites (merci Claude Code !..)
https://github.com/gristgouv/grist-cw-intra-form/pulls

Cela risque de prendre du temps de relecture et corrections avant que tout soit disponible…
S’il y a des volontaires pour nous aider et faire des premières relectures du code, vous êtes bienvenu·es !

  • Prise en compte des colonnes de type « Date & heure »
  • Possibilité d’ajouter un filtre/condition sur liste déroulante pour les colonnes de type référence/réf multiple .
    Les cas pris en compte :
  1. Ref vs Ref : choice.Departement == $Departement
  2. Ref vs RefList : choice.Departement in $Departements
  3. RefList vs Ref : $Departement in choice.Departements
  4. RefList vs RefList : intersection

Spoiler : il faudra simplement choisir la colonne par rapport à laquelle on veut filtrer, et la vue générera la règle selon le type de colonne détecté dans la table référencée. Elle nous affichera la règle en python et gèrera même les intersections de liste (ie dans le cas de réf multiple de chaque côté, plus besoin de « colonne technique ») !

  • Ajout d’une barre de recherche pour les champs des colonnes références et choix & améliorer l’ui pour les choix/réfs multiples

  • Correction surlignage qu’on ne pouvait pas enlever quand on sélectionnait seulement une partie du texte

  • Correction champs texte multilignes qui n’apparaissaient pas pour les éditeurs

  • Correction chargement lent du formulaire et des listes pour des tables lourdes (ajout lazyloading)

Dès que c’est fait les prochains sujets seront :

  • rendre le formulaire responsive (adapter la largeur à la largeur des champs à la largeur de la vue)
  • remplacer icône poubelle par icône masquage (oeil barré)
  • réinitialiser les champs après validation
  • ajouter une option pour trier les listes de choix/réf par ordre alphabétique
  • « select by » : possibilité de modifier des données si la vue form est liée à une autre vue
  • lors de l’ajout d’un form, ajouter les champs dans l’ordre des colonnes dans la table (pas dans l’ordre de création des colonnes)
2 « J'aime »

Merci Aude pour ce super widget !

J’ai testé la fonctionnalité pour les questions conditionnelles mais elle semble opérationnelle qu’avec des colonnes type référence. C’est possible d’étendre son usage avec des colonnes booléenne également ?

Bonjour à tous,
Un grand merci à l’ensemble des contributeurs pour la mise à disposition et l’évolution constante de ce widget.
Ma maîtrise de l’anglais ne me permettant pas d’être certain que mes demandes sont prises en compte dans les tickets GitHub, je souhaiterais obtenir une confirmation sur deux points :

  1. Les conditions pour les listes déroulantes sont-elles bien prévues dans la todo list (a priori, issue #5) ?
  2. Je n’ai pas trouvé de ticket concernant la possibilité d’ajouter une valeur directement dans une liste de référence. Cette fonctionnalité est-elle envisagée ou existe-t-il déjà une issue dédiée ?

Je vous remercie par avance pour vos retours.
Cordialement,

Bonjour,
Merci des retours :slight_smile:

  1. réponse dans mon post au-dessus
  2. oui For references and choices, allow users to add new values · Issue #6 · gristgouv/grist-cw-intra-form · GitHub

N’hésitez-pas si vous avez d’autres idées !

1 « J'aime »

avec plaisir, les questions conditionnelles fonctionnent avec réf ou choix, est-ce que ça pourrait t’aller de fonctionner avec un choix unique oui/non ?

Et tu peux bien sûr ouvrir une issue ici pour le boolén, ce serait pratique en effet : Issues · gristgouv/grist-cw-intra-form · GitHub