pluginsGLPI / formcreator

GLPI Plugin Formcreator (DOWNLOAD : https://github.com/pluginsGLPI/formcreator/releases)
http://www.teclib-edition.com
GNU General Public License v3.0
174 stars 125 forks source link

Choix catégorie/lieu vide après maj 2.11.0 #2095

Closed tguichard25 closed 3 years ago

tguichard25 commented 3 years ago

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.

btry commented 3 years ago

Bonjour

Quel est (ou sont) le(s) type(s) exact(s) de question impactés ?

tguichard25 commented 3 years ago

Intitulé - Catégories de ticket Intitulé - Lieux

btry commented 3 years ago

OK, je regarde tout de suite.

btry commented 3 years ago

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.

tguichard25 commented 3 years ago

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.

btry commented 3 years ago

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'],
       ];
tguichard25 commented 3 years ago

Toujours pareil

btry commented 3 years ago

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.

tguichard25 commented 3 years ago

Non aucun message, j'ai un recherche en cours et image

btry commented 3 years ago

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 ?

tguichard25 commented 3 years ago

Effectivement c'est bien 200.

btry commented 3 years ago

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".

tguichard25 commented 3 years ago

{"results":[{"id":0,"text":"-----"}],"count":0}

btry commented 3 years ago

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/

tguichard25 commented 3 years ago

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 INTOglpi_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

tguichard25 commented 3 years ago

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`

btry commented 3 years ago

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.

btry commented 3 years ago

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.

tguichard25 commented 3 years ago

C'est la première question de mon formulaire sans condition. image

historique sur le formulaire image

btry commented 3 years ago

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.

btry commented 3 years ago

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)

btry commented 3 years ago

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.

tguichard25 commented 3 years ago

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"}

btry commented 3 years ago

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 ?

image

tguichard25 commented 3 years ago

image Pas de sous arbre sélectionné, en revanche effectivement je n'ai pas de catégorie 89.

btry commented 3 years ago

Si vous videz ce paramètre, je pense que votre question fonctionnera de nouveau. J'attends votre retour.

tguichard25 commented 3 years ago

Effectivement avec la valeur 0 ça fonctionne.

btry commented 3 years ago

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.

tguichard25 commented 3 years ago

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.

btry commented 3 years ago

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 ?