🏗️ Créer ou modifier une table
Choisissez une table existante dans le menu déroulant pour en modifier les colonnes, ou sélectionnez « Créer une nouvelle table » pour partir de zéro. Cliquez sur Appliquer les modifications pour enregistrer.
📋 Types de colonnes
- Text — texte libre
- Numeric / Int — nombre décimal ou entier
- Bool — case à cocher (vrai/faux)
- Date / DateTime — date ou date + heure
- Choice — liste de choix
- Ref — référence vers une autre table
⚡ Formules et déclencheurs
La colonne Formule accepte du Python sans le signe =. Exemples : $Prenom + ' ' + $Nom, NOW(), user.Email.
- À la création — la formule s'exécute une seule fois à la création de la ligne, puis la valeur reste figée.
- À la modif. — la formule se réexécute à chaque modification de la ligne.
- Sans cocher aucune case, la formule est une formule standard recalculée en permanence.
✨ Traçabilité
Ajoute automatiquement 4 colonnes : CrééLe, CrééPar, ModifiéLe, ModifiéPar. Utile pour un suivi simple des créations et modifications.
📜 Historique
Application du code trouvé ici : https://forum.grist.libre.sh/t/suivi-automatique-de-lhistorique-des-modifications-des-donnees-dans-grist proposé par Céline (https://forum.grist.libre.sh/u/celine) 👏 & 🙏
Crée deux colonnes HISTORY_RAW et HISTORY qui enregistrent automatiquement l'intégralité des modifications ligne par ligne, avec horodatage et nom d'utilisateur.
- Cochez 📜 Historique sur les colonnes à surveiller avant d'appliquer.
- Vous pouvez ajouter ou retirer des colonnes suivies à tout moment en modifiant les coches puis en réappliquant.
- HISTORY est la colonne à afficher aux utilisateurs (sans les données techniques), on peut modifier son nom. HISTORY_RAW contient les snapshots encodés et ne doit pas être modifiée manuellement.
📥 Importer depuis la </> Vue du Code
Copier la définition d'une table d'un autre document, typiquement :
@grist.UserTable
class Table1:
Nom = grist.Text()
Prenom = grist.Text()
def _default_CreeLe(rec, table, value, user):
return NOW()
CreeLe = grist.DateTime()
def _default_CreePar(rec, table, value, user):
return user.Email
CreePar = grist.Text()
Puis cliquer sur le bouton Analyser & préparer
La table trouvée et ses colonnes seront proposées à la création, de la même manière que si cela avait été fait à la main dans le formulaire
Si la proposition vous sied, il suffit de cliquer sur Appliquer les modifications
👯 Ajout des tables Entites & Utilisateurs
Le bouton 👯 Gestion Utilisateurs déploie instantanément un écosystème complet et interconnecté basé sur deux tables :
- Table
Entites : Gère une structure hiérarchique arborescente (organisations, services, etc.) grâce à un champ Parent. Elle calcule de manière dynamique le Nom complet (chemin complet), génère un lien mailto: groupé de tous ses membres, et décompte via des fonctions récursives le nombre d'utilisateurs actifs directs (Nbre) et globaux (NbreTotal, incluant les sous-entités). Elle embarque nativement une traçabilité complète à la création/modification.
- Table
Utilisateurs : Liste les membres avec leur courriel, rôle et statut (Actif). Elle embarque nativement une traçabilité complète à la création/modification et une liaison vers l'entité parente.
📅 Sondage de dates
Le bouton 📅 Sondage de dates ouvre un agenda dans une pop-up. Cliquez sur une date, précisez éventuellement une heure de début/fin, puis + Ajouter ce créneau ; répétez pour chaque créneau à proposer.
Les valeurs de réponse (par défaut : Disponible / Compliqué / Impossible) sont modifiables dans la pop-up : renommez-les, changez leur couleur de fond et de texte via les pastilles de couleur, supprimez-en ou ajoutez-en avec + Ajouter une valeur.
À la validation, la pop-up se ferme et les colonnes suivantes sont ajoutées à la liste : une colonne Courriel (texte), une colonne de type Choix par créneau sélectionné (libellé = date/heure du créneau, avec les valeurs définies dans la pop-up), puis une colonne Commentaires (texte). Il ne reste plus qu'à cliquer sur Appliquer les modifications pour créer ou compléter la table.