Projet

Général

Profil

Development #19112

UI de ComputedExpressionWidget

Ajouté par Thomas Noël il y a plus de 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
30 septembre 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Actuellement sur un widget "compute" on a le dessin d'un petit cube. Ça n'aide pas encore assez les gens à saisir ce qu'il faut taper, entre ezt ou python...

Ce ticket pour discuter de cette idée d'amélioration :
  • on retire le cube, on agrandit la case en largeur
  • on affiche « …[…]… » à la place du petit cube (ou autre idée qui rappelerait ezt)
  • on remplace par « Python » quand un "=" est indiqué par l'utilisateur en début de chaîne, et on change de couleur ou on ajoute le logo python jaune/bleu
  • on remplace par « …{{…}}… » quand on accepte du template Django (non je rigole, c'est pour un autre ticket, un jour)

Fichiers

Révisions associées

Révision bbe38a8f (diff)
Ajouté par Frédéric Péters il y a presque 6 ans

general: update UI of expression widget to match condition widget (#19112)

Historique

#1

Mis à jour par Thomas Noël il y a plus de 6 ans

Juste un test chez moi pour voir ce que ça pourrait donner.

#2

Mis à jour par Frédéric Péters il y a plus de 6 ans

🐍 pour le Python et […] pour l'ezt ? (pas fan de case trop longue, à voir aussi assurer que la longueur reste fixe sur un changement de type)

#3

Mis à jour par Thomas Noël il y a plus de 6 ans

Frédéric Péters a écrit :

🐍 pour le Python et […] pour l'ezt ? (pas fan de case trop longue, à voir aussi assurer que la longueur reste fixe sur un changement de type)

Moi c'est un peu le contraire, je trouve qu'on devrait être assez "explicite" et ne pas utiliser d'icones qui ne veulent pas dire grand chose aux débutants. Donc je resterais bien sur mon idée de "Python" et "..[..].." avec même, quand c'est vide, un "[..] / Py" pour dire que le champ accepte les deux.

Ok c'est pas top, mais c'est mon idée alors je joue.

Bon c'est vrai que cette case au début peut paraitre un peu bizarre... peut-être en la mettant à la fin ?

#4

Mis à jour par Frédéric Péters il y a presque 6 ans

  • Sujet changé de amélioration du pictogramme sur ComputedExpressionWidget à UI de ComputedExpressionWidget

Pour revenir ici, dans la suite de #24046 (UI pour les conditions), je verrais bien quelque chose de similaire ici (sélection explicite du contenu via un bouton sur la droite, avec en grisé dans le champ le type de contenu attendu); pour les conditions le nécessaire a été fait pour conserver de manière indépendante le format attendu, ça me semble plus compliqué à faire pour ces champs, du coup je composerais avec la contrainte du stockage sous forme de chaine de caractère.

On pourrait déterminer que le stockage se fait genre "$format$valeur", avec le nécessaire de compatibilité pour comprendre aussi =valeur comme étant $python$valeur, etc.

#5

Mis à jour par Thomas Noël il y a presque 6 ans

Frédéric Péters a écrit :

Pour revenir ici, dans la suite de #24046 (UI pour les conditions), je verrais bien quelque chose de similaire ici (sélection explicite du contenu via un bouton sur la droite, avec en grisé dans le champ le type de contenu attendu);

Yep.

je composerais avec la contrainte du stockage sous forme de chaine de caractère.
On pourrait déterminer que le stockage se fait genre "$format$valeur", avec le nécessaire de compatibilité pour comprendre aussi =valeur comme étant $python$valeur, etc.

Ça me semble bien jouable, collision avec l'existant fortement improbable. On aurait donc dans les choix possibles :

  • $django$... → gabarit Django
  • $ezt$... → gabarit ezt
  • $python$... → formule Python (mais qui ne commence plus par un =)
  • $text$... → texte simple

Et on gérerait «tout ce qui n'est pas en $...$» via le mécanisme actuel de devinette, pour les calculs mais également pour déterminer l'affichage du widget composite correspondant au type deviné.

#6

Mis à jour par Frédéric Péters il y a presque 6 ans

Après un temps sur cette idée $type$value, qui a permis de nettoyer le code, retirer les .startswith('=') à gauche et à droite, je suis revenu en arrière, pour rester sur la même syntaxe de stockage, le seul inconvénient étant de ne pas faire de distinction formelle entre texte simple et gabarit. (dans les avantages il y a l'utilisation pour les champs calculés dans un modèle odt, qui ainsi ne change pas).

Côté code pour montrer que ce n'est rien, je n'ai pas encore retiré la partie qui gérait $type$value, il y a ce bout dans form.py :

+        # after some time, switching format? (the benefit is to have distinct
+        # modes for text and template).
+        # self.value = '$%s$%s' % (value_type, value_content)

et ce bout dans workflows.py :

+        elif var.startswith('$') and var.count('$') > 1:
+            expression_type, expression_value = var.split('$', 2)[1:]

Bref, voici le patch, et je pense que c'est vraiment mieux de faire sans $type$value. (et j'en retirerai ces deux morceaux)

#7

Mis à jour par Thomas Noël il y a presque 6 ans

('Texte' → 'Text' dans le code)

Pourquoi garder 3 choix text/template/python alors qu'en fait c'est seulement template/python qu'on gère finalement ? Je serais presque pour ne garder que ces deux choix. Ou je rate encore qqchose...?

#8

Mis à jour par Frédéric Péters il y a presque 6 ans

Pourquoi garder 3 choix text/template/python alors qu'en fait c'est seulement template/python qu'on gère finalement ? Je serais presque pour ne garder que ces deux choix. Ou je rate encore qqchose...?

Même si c'est (aujourd'hui) la même chose derrière, àa me semble moins flippant pour l'admin d'entrer du "texte" que de se trouver sur un champ lui demandant un gabarit.

#9

Mis à jour par Thomas Noël il y a presque 6 ans

Pépin sur le style quand on est sur la gestion des données backoffice, screenshot ci-joint.

#10

Mis à jour par Frédéric Péters il y a presque 6 ans

Corrigée la présence d'une chaine "Texte" et ce problème de style, j'ai aussi retiré la partie qui aurait géré $type$value.

#11

Mis à jour par Thomas Noël il y a presque 6 ans

Ack

#12

Mis à jour par Frédéric Péters il y a presque 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit bbe38a8fad115ac4f4afcde98aed8ce1dae7203d
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon May 28 14:39:59 2018 +0200

    general: update UI of expression widget to match condition widget (#19112)
#13

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF