Closed tguichard25 closed 3 years ago
Bonjour
Quel est (ou sont) le(s) type(s) exact(s) de question impactés ?
Intitulé - Catégories de ticket Intitulé - Lieux
OK, je regarde tout de suite.
Je ne reproduis pas. Il faut peut être que je cherche avec un contexte d'entités spécifique.
Décrivez une arborescence d'entités pour que je positionne dedans
Mon hypothèse sera renforcée si vous avez d'autres dropdowns portant sur des objets sans entité et qui fonctionnent.
l'utilisateur - entité racine avec récursivité formulaire - sous entité catégories de ticket - même sous entité que le formulaire lieux - entité racine avec récursivité
J'ai essayé de me positionner sur l'entité du formulaire, même constat.
Je ne reproduis toujours pas. le comportement vis à vis des entités me parait bon.
Je pense que le correctif de #2023 et #2047 n'est pas lié à votre problème. Je voudrais en être sûr. Pour cela, annulez le correctif en appliquant le patch suivant. Est ce que cela change le contenu des dropdowns ?
diff --git a/inc/field/dropdownfield.class.php b/inc/field/dropdownfield.class.php
index 1172c0e1..59defb36 100644
--- a/inc/field/dropdownfield.class.php
+++ b/inc/field/dropdownfield.class.php
@@ -204,8 +204,7 @@ class DropdownField extends PluginFormcreatorAbstractField
'value' => $this->value,
'display' => false,
'comments' => false,
- 'entity' => $form->fields['entities_id'],
- 'entity_sons' => (bool) $form->isRecursive(),
+ 'entity' => $_SESSION['glpiactiveentities'],
'displaywith' => ['id'],
];
Toujours pareil
Ok, on élimine cette piste. Annulez le patch.
Quand vous déroulez les dropdowns, quel est le message qui s'affiche ? Si je me souviens bien, il y a un message disant qu'il n'y a pas de résultat, et un autre qui dit qu"il y a eu une erreur en récupérant les éléments à afficher.
Non aucun message, j'ai un recherche en cours et
Ouvrez les outils de développeur de votre navigateur, puis déroulez une dropdown. Dans l'onglet réseau (ou network) des outils, vous devriez voir une requête HTTP vers getDropdownValue.php . Quel est le code HTTP de la réponse ? Est-ce 200 ?
Effectivement c'est bien 200.
Ok, regardez également la réponse renvoyée par le serveur. Cliquez sur la requête et un panneau apparaîtra avec des onglets. Montrez ce qu'il y a dans l'onglet "réponses".
{"results":[{"id":0,"text":"-----"}],"count":0}
Aucune erreur visible ici. Vérifiez si il y a des erreurs en rapport dans sql-errors.log et php-errors.log . Ces fichiers sont dans glpi/files/_log/
Au moment de la maj vers la beta dans sql-errors.log
[2021-01-07 14:05:54] glpisqllog.ERROR: DBmysql::query() in C:\lab_glpi\inc\dbmysql.class.php line 306 *** MySQL query error: SQL: INSERT INTO
glpi_plugin_formcreator_targets_actors(
actor_role,
actor_type,
actor_value,
use_notification,
uuid,
itemtype,
items_id) VALUES ('1', '4', '3', '1', '2b8837cd-10f41cad-5df259e8285927.48364355', 'PluginFormcreatorTargetTicket', '1') Error: Table 'lab_glpi.glpi_plugin_formcreator_targets_actors' doesn't exist Backtrace : inc\dbmysql.class.php:1127 ...ins\formcreator\install\upgrade_to_2.11.php:265 DBmysql->insert() ...ins\formcreator\install\upgrade_to_2.11.php:158 PluginFormcreatorUpgradeTo2_11->migrateTargetTicket_Actor() plugins\formcreator\install\install.php:139 PluginFormcreatorUpgradeTo2_11->upgrade() plugins\formcreator\install\install.php:107 PluginFormcreatorInstall->upgradeOneStep() plugins\formcreator\hook.php:48 PluginFormcreatorInstall->upgrade() inc\plugin.class.php:726 plugin_formcreator_install() front\plugin.form.php:47 Plugin->install() {"user":"2@SRV-PARC01"}
voir #2100
Sinon dans php-errors.log `[2021-01-28 11:27:14] glpiphplog.ERROR: *** PHP User Error (256): Trying to load a forbidden class name "0" in C:\lab_glpi\inc\autoload.function.php at line 280 Backtrace : inc\autoload.function.php:280 trigger_error() : glpi_autoload() : spl_autoload_call() marketplace\formcreator\ajax\commontree.php:45 is_a()
voir #2101`
L'erreur dans sql-errors.log n'a pas de rapport avec le ticket. Cependant, vous pouvez en ouvrir un autre pour ce sujet; j'ai eu un retour semblable tout à l'heure.
L'erreur dans php-errors me parait plus intéressante. Préparez un outil pour lire des informations en base de données (CLI mysql ou un outil GUI). Il se peut que j'aie besoin de vérifier des données.
L'erreur php doit être liée à une action côté administration des formulaires. Elle a dû se produire quand quelqu'un a édité une question de type Intitulé ou Glpi Object. Voyez si quelqu'un a modifié un formulaire vers 11h30 ce matin. Par conte, il n'y a pas de lien avec le souci de ce ticket. Vous auriez eu d'autres occurrences provoquées par les essais que nous venons de faire.
Il ne reste que 2 possibilités : une mauvaise conception du formulaire par rapport aux objets manipulés (utilsiateur, intitulés de lieux ou de catégorie ITIL) ou bien un bug dans la logique de la question. je continue de chercher.
C'est la première question de mon formulaire sans condition.
historique sur le formulaire
Alimentez ces infos dans un autre ticket pour bien séparer les sujets. C'est plus facile à lire quand je dois reprendre les tickets longs à résoudre.
Pour le souci de migration : #2100 (upgrade à rejouer selon instructions de la PR. Une alternative manuelle est possible)
Pour le problème de chargement de classe #2101 (résolu)
Bonjour
Le détail important est probablement celui-ci : "Si je recréé la même question, aucun souci, mais les questions existantes ne fonctionnent plus."
Vous avez tenté de recréer une question impactée. Alors pouvez vous chercher dans la base de données les informations d'une question qui ne marche pas et une qui marche, dans al table glpi_plugin_formcreator_questions ?
C'est le dernier souci qui reste à ce jour avant une release corrective.
Bonjour,
Voici une piste. Question qui ne fonctionne pas: {"itemtype":"ITILCategory","show_ticket_categories":"both","show_ticket_categories_depth":"0","show_ticket_categories_root":"89"}
Question qui fonctionne: {"itemtype":"ITILCategory","show_ticket_categories":"both","show_ticket_categories_depth":"0","show_ticket_categories_root":"0"}
Bonjour
A priori, votre question est configurée de manière à présenter un sous arbre des catégories ITIL à partir de celle portant l'ID 89. Je pense que cette catégorie n'a pas d'enfant ou n'existe pas. Pouvez-vous vérifier ?
Pas de sous arbre sélectionné, en revanche effectivement je n'ai pas de catégorie 89.
Si vous videz ce paramètre, je pense que votre question fonctionnera de nouveau. J'attends votre retour.
Effectivement avec la valeur 0 ça fonctionne.
Parfait. Donc ce n'était pas un bug, mais incohérence dans les données de la question. Je ferme ce ticket; merci pour votre retour.
Bin, je ne comprend pas. Je n'avais pas de sous arbre sélectionné. Et je ne rien changé à ma question. C'est seulement suite a la maj que j'ai eu le problème.
Je viens de vérifier l'upgrade entre 2.10.4 (que vous utilisez avant si je ne me trompe pas), et 2.11.0.
Il ya des changements sur les questions pour passer à un affichage en grille, augmenter la taille des colonnes values et default_values (contenant la donnée qui nous intéresse).
Il y a le changement de format de stockage sur ces mêmes colonnes pour utiliser le format JSON, plus lisible, mais cela ne concerne pas les questions de type intitulé, déjà en JSON depuis un certain temps.
Aucun de ces changements ne me parait susceptible de provoquer l'ajout de cet ID 89. Avez vous fait un backup fait juste avant l'upgrade ? Y a t'il cet ID 89 qui apparaît dans la question ?
J'ai testé la beta 2.11.0 sur mon environnement de test. Je viens de faire la maj sur la release et depuis mes questions avec liste affiche une valeur vide. Si je recréé la même question, aucun souci, mais les questions existantes ne fonctionnent plus. Sur la beta je n'avais pas le problème.