Scènes : Blocs conditionnels (SI… ALORS… SINON…)

Je trouve ça vraiment top aussi !

Quelques remarques :

  • @pierre-gilles tu fais comment pour ajouter un nouveau bloc d’actions ? je ne vois pas de +
  • l’intitulé Only continue if m’embête car ça veut dire logiquement qu’il n’y a pas de Then ni Else. Tu avais juste mis Conditions dans ta vidéo ce que je trouvais très bien
  • je trouve le texte If all conditions are met ... bizarre car on voit un +OR juste en dessous, ça me perturbe car si j’ai un OR ce ne sont pas toutes les conditions qui sont valides mais seulement une d’elles (ok, il y a + Add condition en-dessous mais ce n’est pas flagrant/parlant)
  • j’aime bien le fait de savoir où on est dans la scène avec les 1.2.Then.xx mais en regardant ton dernier exemple, je trouve ça lourd visuellement … avis très personnel, pas de mauvaise foi dans mon commentaire.
  • on fait un + Add action centré pour les IF/THEN/ELSE et on réajuste pour tous les autres blocs « normaux » ou on laisse les autres comme ça ? :
    Perso je préfère celui-là c’est plus clair car toutes les fonctions liées au bloc sont regroupées (bouger/ajouter/supprimer).

En tout cas ça augure un paquet de bonnes choses à venir dans les scènes ce dév, je suis impatient de l’avoir en prod :hugs:

Si Gladys est configuré en Français de ton côté alors se sera en Français.

1 « J'aime »

merci @_Will_71

Comme actuellement en production :slight_smile: C’est automatique, je n’ai rien changé là dessus.

Tu confonds plusieurs choses je pense !

Ne fais pas attention aux traductions pour l’instant, elles ne sont pas faites.
Là je travaille juste sur l’UI.

J’aime bien le petit bouton « + add action » en bas partout :slight_smile:

Je viens de tester et je n’avais même pas fait attention que lorsque l’on ajoutait une action alors un nouveau bloc apparaissait, excellent l’automatisme !!

Point 2 : ok
Point 3 : ok, on verra avec l’utilisation

Je suis d’accord avec ça !

Et du coup cette proposition est logique est pertinente.

Sur ça, je suis d’accord aussi, mais c’est bien ce que j’avais fait dans la maquette pour lever l’ambiguïté. il y a ce texte en début de la section « Si… » : Si toutes les conditions ci-dessous sont vérifiées, la scène se poursuivra par les blocs définis dans la section “Alors…”. Sinon, ce sont ceux définies dans la section “Sinon…” qui seront exécutés

1 « J'aime »

Hello à tous !

J’ai bien avancé sur le développement aujourd’hui et j’ai un premier résultat testable :tada:

Ce n’est pas encore totalement finalisé, mais vous pouvez déjà commencer à tester et me faire vos retours.

La PR est dispo ici pour ceux qui veulent l’essayer sur leur environnement de développement :

J’ai lancé un build Docker sur :

gladysassistant/gladys:scene-if-then-else

Ce build devrait être prêt d’ici 50 minutes environ (vers 17h50 aujourd’hui).

Questions

Une des questions que je me pose concerne le drag & drop, qui est devenu plus complexe à gérer. Comme l’action “Condition : Si… Alors… Sinon…” est un bloc massif contenant lui-même des actions, il n’est pas possible de le déplacer librement dans d’autres actions via drag & drop.

:arrow_right: Pour l’instant, j’ai fait en sorte que cette action ne soit déplaçable que vers une autre action du même type. Cela atténue un peu le problème, à voir si c’est idéal. Je suis preneur de vos retours !

@StephaneB, comme tu as pensé ce développement, ton avis m’intéresse particulièrement. Dis-moi ce que tu en penses ! :blush:

Cool @pierre-gilles que tu aies pu avancer au point que ce soit déjà testable. Mais il faut un environnement de devt, ou il y aura un lien Gladys Plus pour pouvoir tester ?

Il faut lancer le container / ou un environnement de dev !

Pas de lien Gladys plus possible, car les changements sont frontend et backend.

Ah oui, logique. Lancer le container, ça se fait comment ? Si tu as déjà écrit ça quelque part, bien sûr hésite pas à me renvoyer sur la bonne page :wink: (J’ai cherché un peu sans trouver…)

C’est ici :slight_smile:

1 « J'aime »

Alors spoiler pour ceux qui n’auront pas testé : c’est juste top de pouvoir imaginer des scènes avec ce nouveau mécanisme « si alors sinon » !!

Bravo @pierre-gilles

Quelques remarques d’abord:

  • il va falloir s’habituer à la nouvelle position du bouton « + Nouvelle action », mais ça me va bien
  • Bien vu, la liste des conditions : j’avais complètement zappé qu’il y avait aussi les « Si alarme » et « Si maison… ». Mais est-ce que ça ne serait pas judicieux de les renommer en « Condition sur alarme » et « Condition sur maison vide » et « Condition sur maison non vide » ?
  • De la même façon que le Alors et le Sinon peuvent être repliés/dépliés, je me dis que la Condition devrait pouvoir l’être aussi.
  • l’indentation des sections Alors et Sinon fonctionne bien je trouve, même en imbriquant plusieurs niveaux de Conditions. A l’usage, on va peut-être quand même se perdre un peu si les scènes deviennent longues, mais à chacun de se limiter à des choses raisonnables pour que ça reste lisible…
  • quand les sections « Alors… » et « Sinon… » sont repliées, je trouve qu’il manque une info pour visualiser qu’il y a quelques blocs définis ou pas. Peut-être une info du style « > Alors (3 blocs d’actions) » et « > Sinon (0 blocs d’actions) » ? Et pareil pour la Condition, si tu la rends repliable.
  • je pense que le nom de l’action 'condition si alors sinon" n’est pas le plus ajusté. Je comprends que cela soit un nom simple, mais avec cette action ce n’est pas vraiment une condition qu’on ajoute, comme on le fait avec les 5 autres actions « condition… ». Cette nouvelle action a vraiment pour but d’ajouter deux chemins d’actions… Enfin bref, « Blocs conditionnels » me semble plus ajusté. Mais c’est un peu moche, par contre :wink: Quelques alternatives : « Structure Si… Alors… Sinon… », « Blocs d’actions selon condition (Si… Alors… Sinon…) »

Et ensuite quelques petits défauts pendant mes tests :

  • dans un même bloc, j’ai créé une action « condition si alors sinon » puis une action « envoyer un message ». Je n’ai pas pu déplacer l’action message à la place de l’action condition. Alors que l’inverse est bien possible.
  • j’ai fait des tests de déplacement de blocs d’action:
    • j’ai fait buggué l’interface quand j’ai voulu déplacer un bloc d’actions depuis la section « Alors… » vers la section « Sinon… » qui était repliée (le bloc que je voulais bouger est resté grisé, sans se déplacer…)
    • je n’ai pas pu déplacer un bloc d’action de la section « Alors… » vers la section « Sinon… » qui était dépliée (le bloc n’a pas bougé)
    • Quand j’ai voulu déplacer un bloc d’action de la section « Alors… » vers un bloc en dehors de l’action « Condition Si Alors Sinon », ça a eu un effet radical non souhaité : l’action « Condition Si Alors Sinon » a complètement disparu.
  • J’ai créé une scène simple : un bloc 1 qui affiche le message « Avant », le bloc 2 avec un condition temporelle qui affiche « Alors » ou « Sinon » selon l’heure, et un bloc 3 qui affiche après. A l’exécution, j’ai eu souvent ‹ Avant Alors Après › ou ‹ Avant Sinon Après ›, mais il m’est arrivé d’avoir ‹ Avant Après Sinon › et même ‹ Après Avant Sinon › (et idem sur les ‹ alors ›). C’est bizarre, non ? C’est juste le flux d’affichage dans « Discussion » qui peut s’inverser, mais les blocs se sont bien exécutés dans l’ordre ? Ou il y a un souci ?
2 « J'aime »

Hello,
je viens de tester rapidement, c’est vraiment top !

Bug (?) trouvé pour l’instant : si on ajoute une action à un bloc Alors ou Sinon, un second bloc d’actions apparaît (normal). Si on supprime l’action du premier bloc, le second ne disparaît pas et ne peut pas être supprimé :


Dans un bloc « classique », lorsque que l’on supprime l’action du premier bloc, on a la possibilité de supprimer :

[/details]

:+1: ça fonctionne chez moi (firefox/macOS) dans les 2 sens

:+1: On peut déplacer une action d’un bloc Alors/Sinon d’une Condition vers un bloc Alors/Sinon d’une autre Condition au même niveau ou niveau inférieur/supérieur (indentation), ou même vers un bloc Action seul.

  • Bug : un bloc Alors 2.1.A.3. (par ex) ne peut pas être déplacé sur le bloc Alors 2.1.A.2 pour prendre sa place

  • Bug : il est possible de déplacer une action Envoyer un message ou bien Allumer la prise vers le bloc Condition alors que l’on ne peut pas créer ce type d’action dans Condition

Je testerai à nouveau demain pour être sûr. Je suis sous Firefox et Ubuntu, mais sur un petit ordi que je n’ai pas mis à jour depuis longtemps…

Merci à tous pour vos retours ! :slight_smile:

Je pense qu’il vaut mieux privilégier la compréhension que la cohérence :slight_smile: « Si la maison est vide » c’est bien plus clair je trouve.

Intuitivement je suis moins d’accord, comme c’est « top level » je préfère garder ça visible. Après je me trompe peut-être, à l’usage ça sera peut-être pas pratique

Pas bête! je vais voir ce qui est possible de faire :slight_smile:

Je comprend ce que tu veux dire, après pour moi l’objectif est vraiment la compréhension par l’utilisateur final. Il faut du concret, pas de l’abstrait. Donc typiquement, tout ce qui est « Structure », c’est trop abstrait, l’utilisateur final ne comprendra pas.

Je pense que « Si… Alors… Sinon » doit faire parti du titre, après pour le préfixe, je suis ouvert :slight_smile:

Ok je vais investiguer pour le drag & drop.

Si ta scène s’exécute très vite, les messages peuvent-être tous créé à la même milliseconde et donc être dans un ordre random.

Est-ce que tu pourrais re-tester en ajoutant des blocs « Attendre » (10ms suffisent) pour vérifier que c’est pas un bug ?

Effectivement, je vais corriger :slight_smile:

1 « J'aime »

C’est vraiment pas mal !

4 « J'aime »

Salut à tous :slightly_smiling_face:

J’ai apporté des correctifs grâce à vos retours, merci encore !

Une nouvelle image Docker est disponible :

gladysassistant/gladys:scene-if-then-else

:point_right: Tutoriel : Lancer une image Docker de test

:warning: Si vous aviez déjà lancé l’ancienne image, pensez à exécuter :

docker pull gladysassistant/gladys:scene-if-then-else

J’ai testé en ajoutant des actions attendre de 10ms puis de 100ms en parallèle de chaque action « envoyer un message », et j’ai encore des inversions dans la discussion (par exemple avant=>après=>alors, et alors=>après=>avant). En augmentant les attentes à 1s, je n’ai aucune inversion. Je ne sais pas trop dire si ça signifie qu’il y a bien un bug…

Je comprends ce souci d’être compréhensible. Mais du coup si tu tape le mot ‹ condition › dans la liste déroulante, tu ne les trouves pas toutes et je trouve ça dommage. Bon, pas grave non plus, juste dommage :wink: Et renommer en "Condition 'si la maison est vide' ", tu en penserais quoi ?

Je te propose « Actions conditionnelles 'Si… Alors… Sinon…' » . Ça reste assez court, le Si Alors Sinon est bien inclus, et ça exprime bien qu’on ajoute des blocs d’actions plus qu’une condition.

J’ai bien fait ça, puis j’ai supposé qu’il fallait aussi faire docker container restart scene-if-then-else, et ça s’est executé sans erreur.

Mais dans l’édition de la scène, je ne vois pas le tag que tu as ajouté pour montrer le nombre de blocs d’actions dans le Alors ou le Sinon repliés. C’est normal ? ou ça signifie que la mise à jour ne s’est pas faite ?