Anomalie #642
closedIncohérence dans la vérification d'unicité d'un champ supplémentaire
100%
Description
L'enchainement des étapes suivantes est impossible:
- créer un champ 'foo', de type séparateur > OK créer un champ 'foo', de type 'choix' > OK définir les valeurs possibles pour le 2e champ foo -> erreur 'il existe déjà un champ foo'
Par contre, l'enchainement suivant est possibe:
- créer un champ 'foo', de type 'choix' > OK définir les valeurs possibles pour le 2e champ foo > OK créer un champ 'foo', de type séparateur -> OK
L'incohérence vient de la vérification de l'unicité du champ, qui n'est faite qu'au moment de la définition de ses propriétés, pas lors de sa création.
Ceci dit, tant que les champs ont des identificateurs interne distincts, il n'est pas forcément nécessaire d'imposer l'unicité de leur nom. Un simple avertissement pourrait éventuellement suffire, au moment de la création.
Updated by Johan Cwiklinski over 11 years ago
- Version utilisée changed from 0.7.6 to 0.7.4
Updated by Johan Cwiklinski over 11 years ago
- Target version set to 0.7.5
- Category set to Core
- Assignee set to Johan Cwiklinski
Guillaume Rousse a écrit :
Ceci dit, tant que les champs ont des identificateurs interne distincts, il n'est pas forcément nécessaire d'imposer l'unicité de leur nom. Un simple avertissement pourrait éventuellement suffire, au moment de la création.
Oui mais ça va poser problème lors des traductions ; et je n'en vois pas l'intérêt. Galette propose des champs répétables de différents types, quelle pourrait être la raison d'avoir deux champs dynamiques qui portent le même nom ?
D'après ce que j'en vois, la recherche des duplicatas ne s'effectue que dans editer_champ.php
, et effectivement pas du tout lors de la création.
Updated by Guillaume Rousse over 11 years ago
Galette propose des champs répétables de différents types, quelle pourrait être la raison d'avoir deux champs dynamiques qui portent le même nom ?
Le fait que les séparateurs, cad des éléments visuels, soient implémentés comme des champs, et donc polluent artificiellement l'espace de nommage, par exemple. Ou qu'il peut être souhaitable d'avoir deux champs intitulés de la même manière, mais dans deux sections différentes.
Rendre plus explicite d'une façon ou d'une autre le fait que cet attribut 'nom' correspond en fait à un identifiant (avec contrainte d'unicité), et que ce qui est affiché correspond à la traduction de celui-ci dans la langue courante (sans contrainte d'unicité), me convient également. C'est juste peu intuitif pour un nouvel utilisateur.
Updated by Johan Cwiklinski over 11 years ago
Guillaume Rousse a écrit :
Galette propose des champs répétables de différents types, quelle pourrait être la raison d'avoir deux champs dynamiques qui portent le même nom ?
Le fait que les séparateurs, cad des éléments visuels, soient implémentés comme des champs, et donc polluent artificiellement l'espace de nommage, par exemple. Ou qu'il peut être souhaitable d'avoir deux champs intitulés de la même manière, mais dans deux sections différentes.
Rendre plus explicite d'une façon ou d'une autre le fait que cet attribut 'nom' correspond en fait à un identifiant (avec contrainte d'unicité), et que ce qui est affiché correspond à la traduction de celui-ci dans la langue courante (sans contrainte d'unicité), me convient également. C'est juste peu intuitif pour un nouvel utilisateur.
Hum... Je verrai selon ce qu'il est possible de faire sans tout péter, et sans y passer une semaine surtout. Les histoires de champs dynamiques et de traduction prises à part dont déjà fort compliquées, les deux ensembles ; c'est juste le bordel, je préfère éviter trop de modifications de ce côté là pour ma part...
Le jour où on pourra faire des tests unitaires dans Galette, ce sera probablement moins problématique, en attendant, c'est moi qui me les farcis, et j'en oublie souvent plus de la moitié :(
Updated by Johan Cwiklinski over 11 years ago
- Target version changed from 0.7.5 to 0.7.6
Updated by Johan Cwiklinski about 11 years ago
- % Done changed from 0 to 100
- Status changed from Nouveau to Fermé