> For the complete documentation index, see [llms.txt](https://ksaar.gitbook.io/ksaar-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ksaar.gitbook.io/ksaar-documentation/aller-plus-loin/les-conditions.md).

# Les Conditions

## 1. Généralités

Les conditions permettent de déterminer quels éléments sont visibles ou quelles actions sont exécutées en fonction du contexte.

Dans Ksaar, ces conditions prennent la forme de filtres. Elles consistent à comparer une donnée (valeur d’un champ, utilisateur, enregistrement…) à une valeur de comparaison.

> Exemple : \
> Afficher la ligne "Nom"\
> SI le champ "Pays" est égal à "France"

## 2. Où trouve-t-on des conditions ?

Les conditions peuvent être utilisées dans : les pages (affichage d’une ligne/colonne), les scénarios/actions (réalisation d’un scénario ou d’une étape), les éléments de données (tableau, liste, …) (affichage des enregistrements). Voir les documentations ci-dessous :

* dans les pages et sous-pages
* dans les workflows
* dans les suivis
* dans les actions (boucle, ics, zip)
* dans les liaisons simples/multiples
* **📑** [**Dans les Fiches**](https://ksaar.gitbook.io/ksaar-documentation/les-workflows/modifier-afficher-vos-donnees#les-conditions-dans-les-fiches)
* ✌🏼 [**Au niveau de l'Espace Personnel**](https://ksaar.gitbook.io/ksaar-documentation/les-concepts-de-base/lespace-personnel#les-conditions-dans-lespace-personnel)
* **🔗** [**Sur les champs de la table liée**](https://ksaar.gitbook.io/ksaar-documentation/les-elements/elements-liaisons#les-conditions-sur-les-champs-liaison-simple)
* Dans les éléments de données :
  * **🔲** [**les Tableaux**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/tableaux#les-conditions-sur-les-colonnes)
  * **📍** [**les Cartes**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/cartes#les-conditions-dans-les-cartes)
  * **⚫️** [**les Listes**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/listes#les-conditions-dans-les-listes)
  * **🗓** [**les Plannings**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/plannings#les-condition-dans-les-plannings)
  * **◻️** [**les Kanbans**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/kanban#les-conditions-dans-les-kanbans)
  * 📆 [**les Plannings de ressources**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/planning-de-ressources)
  * 🕙 [les Plannings de réservation de créneaux](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/planning-de-reservation-de-creneaux)
  * 🔁 [**les Groupes répétables**](https://ksaar.gitbook.io/ksaar-documentation/laffichage-des-donnees/groupes-repetables)

Remarques :

* Dans les Pages, la Condition répond à la phrase : **SI "***MES\_CONDITIONS***" ALORS** afficher la page sur lequel on a défini la condition.
* Sur les champs des Liaisons, la Condition répond à la phrase : **SI "***MES\_CONDITIONS***" ALORS** afficher les records dans la liaison qui correspondent à la condition
* Dans les affichages de données, la Condition répond à la phrase : **SI "***MES\_CONDITIONS***" ALORS** afficher les enregistrement qui correspondent à la condition.

## 3. La construction d'un filtre

Les filtres doivent être construits de manière structurée.

* La nature de la donnée comparée (l’enregistrement dans son ensemble, un champ de la table sur laquelle on travaille, un champ de l’utilisateur connecté, etc.).
* Le critère à examiner (champ d’une table, un persona, d’une liaison, …). C'est le critère qui sera évalué pour déterminer si le contenu est en adéquation avec la suite de la condition.
* L’opérateur (voir les opérateurs des différents champs ci-dessous : ils ne sont pas tous disponibles pour n’importe quel champ).
* La valeur de comparaison. Permet de déterminer quelles données sont conservées après comparaison.

{% hint style="info" icon="lightbulb-on" %}
Une valeur utilisateur se trouvera très souvent dans le terme de droite du filtre.
{% endhint %}

<figure><img src="/files/0xAbjgAYjZBe0mf8Njzx" alt=""><figcaption></figcaption></figure>

## 4. Les groupes

Les conditions peuvent être combinées avec :

* **ET** (toutes les conditions doivent être vraies)
* **OU** (au moins une condition est vraie)

Chaque groupe peut contenir d’autres groupes → structure en cascade.

<figure><img src="/files/K905ZVTM8ig0mxbgGlkx" alt=""><figcaption></figcaption></figure>

## 5. Les types de conditions

On peut alors distinguer 3 types de conditions, chacune ayant la même interface.

#### **Conditionner un affichage ou une action**

Il est possible de conditionner un affichage (de page, d’onglet, de ligne), le déclenchement d’une action ou encore l’entrée dans un scénario.

Trois natures de filtres sont associées à ces conditionnements :

* sur les champs&#x20;
* sur l’utilisateur connecté&#x20;
* sur l’enregistrement : l'enregistrement est alors le critère examiné

{% hint style="info" icon="lightbulb-on" %}
“L’utilisateur connecté” et “l’utilisateur créateur” ne désignent pas nécessairement la même personne. Par défaut, l’utilisateur désigne le créateur, sauf mention explicite de l’utilisateur connecté.
{% endhint %}

Remarque : sur l’espace personnel, il est impossible de conditionner une ligne ou une page par un enregistrement car il n’y a pas d’enregistrement en cours.

> Exemple :
>
> Je souhaite afficher des informations uniquement pour certains utilisateurs.
>
> SI le Persona de l’utilisateur connecté est égal à "Administrateur"
>
> ALORS afficher la colonne "Nom"

#### **Conditionner la source d’un élément d’affichage de données**

Il est possible de filtrer les enregistrements de la source à l’aide de conditions, en fonction des valeurs des champs de la table source ou des champs du créateur des enregistrements.

* Le critère “Enregistrement” permet de conditionner selon les liaisons associées à l’utilisateur, mais aussi de n’afficher que l’enregistrement en cours sur une fiche ou un suivi.
* Le critère “Autre” permet de filtrer selon les métadonnées du champs ainsi que des suivis associés.

> Exemple :
>
> Dans un tableau, afficher uniquement les demandes dont le statut est égal à “En cours”

## 6. Le mode filtre

Lorsqu’une condition compare une valeur à un champ (utilisateur ou table), elle peut être activée uniquement si la valeur de comparaison est renseignée.

Pour cela, il faut cliquer sur “Activer le mode filtre” à droite de la condition.

> Exemple :
>
> Dans un moteur de recherche de chaussures, toutes les chaussures sont affichées par défaut.
>
> Si l’utilisateur renseigne une pointure, alors le filtre s’applique et seuls les résultats correspondants sont affichés.

<figure><img src="/files/S9sg94EBDQ8HkxEtD98y" alt=""><figcaption></figcaption></figure>

## 7. La désactivation

Pour pouvoir tester ses conditions sans avoir à tout refaire plusieurs fois, vous pouvez décider de désactiver une condition en cochant le "Switch" tout à droite de la condition. La condition n’est alors pas appliquée.

<figure><img src="/files/F8Ca8jigSkkw9aPAxIPs" alt=""><figcaption></figcaption></figure>

## 8. Les conditions

Voici les différents opérateurs sont disponibles en fonction du type de champ sélectionné :

<details>

<summary>Champs textes (et assimilés)</summary>

Champs concernés : Texte, Paragraphe, Email, URL, Compteur

Comparaisons :

* Nul / Non nul
* Contient
* Est contenu dans
* Égal à
* Différent de
* Supérieur ou égal à
* Inférieur ou égal à
* Strictement supérieur à
* Strictement inférieur à

</details>

<details>

<summary>Champs numériques</summary>

Champs concernés : Nombre, Chrono

Comparaisons :

* Nul / Non nul
* Égal à
* Différent de
* Supérieur ou égal à
* Inférieur ou égal à
* Strictement supérieur à
* Strictement inférieur à

</details>

<details>

<summary>Champs date</summary>

Champs concernés : Date, Date et heure

Comparaisons :

* Nul / Non nul
* Égal à
* Différent de
* Supérieur ou égal à
* Inférieur ou égal à
* Selon une période
* Plage de dates
* Plage de dates avec heure
* Début / Fin

</details>

<details>

<summary>Champs choix</summary>

Comparaisons pour les champs QCU (choix unique) :

* Nul / Non nul
* Égal à
* Différent de

Comparaisons pour les champs QCM (choix multiple) :

* Nul / Non nul
* Égal à
* Différent de
* Contient
* Exclut
* A au moins un élément en commun avec

</details>

<details>

<summary>Booléen</summary>

Comparaisons :

* Égal à
* Différent de

</details>

<details>

<summary>Un utilisateur, un persona ou un groupe</summary>

Valeur : liste de Personas, utilisateur connecté/spécifique, liste des groupes

Comparaisons :

* Égal à
* Différent de

</details>

<details>

<summary>Des métadonnées</summary>

Dates (création/modification)

* Valeurs : hier, aujourd’hui, demain, date personnalisée
* Comparaisons :
  * Égal à
  * Supérieur ou égal à
  * Inférieur ou égal à
  * Selon une période

Statut

* Valeurs : En cours, Terminé, Archivé
* Comparaisons :
  * Égal à
  * Différent de

</details>

<details>

<summary>Autres champs</summary>

Champs : Adresse, Fichier, Fichiers multiples, Signature manuscrite, Téléphone, Couleur

Comparaisons

* Nul
* Non nul

</details>

## 9. Cas particuliers

On peut distinguer certains cas particuliers qu’il est utile de garder en mémoire :

* autoriser la modification dans un planning de ressources
* autorise la création d’évènements dans un planning de ressources (uniquement à partir de l’utilisateur connecté, car aucun enregistrement n’existe encore à ce stade)
* filtrer la visualisation des colonnes d’un tableau
* Conditionner spécifiquement à l’emplacement d’un élément d’affichage de données (pas selon le critère “Autre”) → on accédera alors aux variables de la table, ce qui n’était pas le cas avant

## Exemples détaillés

#### Cas courant

On souhaite afficher tous les élèves appartenant à la même classe que celui sélectionné.

Pour cela, on filtre les élèves dont la classe est égale à la classe de l’enregistrement en cours.

Autrement dit, on utilise la liaison vers la table parent “classe”, qui correspond ici à l’enregistrement en cours.

<figure><img src="/files/3dZQEdkZft89d3YkJqmJ" alt=""><figcaption></figcaption></figure>

#### **Cas particulier**

On souhaite afficher uniquement les adresses associées à la fiche d’un lieu.

Pour cela, on filtre les enregistrements afin de n’afficher que ceux liés à l’enregistrement en cours (c’est-à-dire le lieu actuellement consulté).

Autrement dit, seules les adresses rattachées à ce lieu seront visibles.

<figure><img src="/files/m70p3CnXNrHO6gP6Vl5M" alt=""><figcaption></figcaption></figure>

## Pour en savoir plus, ...

Pour en savoir plus vous pouvez regarder ce tutoriel.

{% embed url="<https://www.youtube.com/watch?v=weKZ9UeZQEA>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ksaar.gitbook.io/ksaar-documentation/aller-plus-loin/les-conditions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
