You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2011-04-06 15:45:10

chtonk
Member
Registered: 2008-02-22
Posts: 34

[DataInjection] mais y sont où mes modèles ?

Bonjour à vous et merci beaucoup pour tous ces plug-in !

Contexte : GLPI 0.78.3 & plug-in 2.0.1-beta 1

voici mon petit souci avec le plug-in :
A l'installation, il n'y a aucun modèle. Pas de souci, comme indiqué, j'en crée un, je lui fournis le fichier (des utilisateurs), le charge, fais la correspondance entre les champs, valide le tout...

mais mais mais... lorsque je veux revenir à la liste de mes modèles, patatras ! plus rien... Ils ne s'affichent pas... Pourtant, ils sont bien présents en base (chose que j'ai pu vérifier via phpMyAdmin dans la table glpi_plugin_datainjection_models)...

Par contre, je ne retrouve plus ces modèles lorsque j'affiche la liste des modèles. La liste est vide. Et je suis connecté en super-admin (qui se trouve être le seul qui a tous les droits dans ma base, tel qu'indiqué dans la table glpi_plugin_datainjection_profiles.

Auriez vous une idée de le pourquoi de le comment ?

Cordialement,


Cordialement,
Guillaume
--
GLPI 0.78.3 en prod - Gentoo RPS II (Linux 2.6.32.2)

Offline

#2 2011-04-06 15:49:24

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: [DataInjection] mais y sont où mes modèles ?

en mode debug il y a des erreurs ?
et dans les logs ?

Offline

#3 2011-04-06 16:10:39

chtonk
Member
Registered: 2008-02-22
Posts: 34

Re: [DataInjection] mais y sont où mes modèles ?

Bonjour et merci pour la rapidité de la réponse.
En mode debug :
Voici la requête censée me retourner mes modèles :

SELECT `id`, `name`, `is_private`, `entities_id`, `is_recursive`, `itemtype`, `step`, `comment` 
FROM `glpi_plugin_datainjection_models` 
WHERE 1 AND`step` = '5' AND (`is_private` = '0' AND ( `glpi_plugin_datainjection_models`.`entities_id` = '0' ) ) OR (`is_private` = '1' AND `users_id` = '2') 
ORDER BY `is_private` DESC, `entities_id`, name

Mes remarques/questions :

1. La clause `glpi_plugin_datainjection_models`.`entities_id` = '0' ne me semble pas correcte, car je suis sous l'entité racine (arborescence). Dans le cas spécifique de l'entité racine en mode arborescence, le plus simple serait de ne pas mettre la clause. Dans le cas d'un sous-entité avec elle même des sous-entités en mode arborescence, il faudrait sélectionner uniquement les entités mises en jeu.

2. Le positionnement des parenthèses des clauses ne me semble pas correcte par rapport à la distributivité des AND et des OR : si j'analyse la requête, j'ai d'un côté tous les modèles où (step=5 ET public ET entité=0) OU BIEN (privé et utilisateur=2). Est-ce que cela ne devrait pas être plutôt step = 5 ET ((public et entité=0) OU (privé ET utilisateur=2)) ?

3. Ensuite, étant donné qu'il peut y avoir des modèles non encore finalisés (en step <5), comment faire pour les retrouver et les "step-fiver" ?

Cordialement,


Cordialement,
Guillaume
--
GLPI 0.78.3 en prod - Gentoo RPS II (Linux 2.6.32.2)

Offline

#4 2011-04-06 16:14:07

chtonk
Member
Registered: 2008-02-22
Posts: 34

Re: [DataInjection] mais y sont où mes modèles ?

chtonk wrote:

2. Le positionnement des parenthèses des clauses ne me semble pas correcte par rapport à la distributivité des AND et des OR : si j'analyse la requête, j'ai d'un côté tous les modèles où (step=5 ET public ET entité=0) OU BIEN (privé et utilisateur=2). Est-ce que cela ne devrait pas être plutôt step = 5 ET ((public et entité=0) OU (privé ET utilisateur=2)) ?

je corrige légèrement ce point là, étant donné qu'en fait, on peut vouloir uniquement les modèles publics finalisés d'une entité ou bien les modèles privés non finalisés d'un utilisateur. Mais dans ce cas, que deviennent les modèles publics non finalisés ?


Cordialement,
Guillaume
--
GLPI 0.78.3 en prod - Gentoo RPS II (Linux 2.6.32.2)

Offline

#5 2011-04-07 09:57:33

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: [DataInjection] mais y sont où mes modèles ?

Je viens de vérifier la requete générée par le moteur de recherche (Gestion des modèles) :

WHERE 1 
    AND (`is_private` = '0' 
             AND ( `glpi_plugin_datainjection_models`.`entities_id` = '335' 
                       OR (`glpi_plugin_datainjection_models`.`is_recursive`='1' AND `glpi_plugin_datainjection_models`.`entities_id` IN ('0','303','68','1')) 
             ) 
    ) 
    OR (`is_private` = '1' AND `users_id` = '6') 

Ce qui me semble correct....

Et je vois bien mon modèle en cours de création.

+


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

#6 2011-04-07 10:29:29

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: [DataInjection] mais y sont où mes modèles ?

Pour le  "`step` = '5' " (choix du modèle pour injection), il y a effectivement un petit soucis de priorité.

Corrigé.
https://forge.indepnet.net/projects/dat … isions/569

Donc maintenant, on a
Moteur de recherche

WHERE ((`is_private` = '0' 
                 AND ( `glpi_plugin_datainjection_models`.`entities_id` = '335'  
                            OR (`glpi_plugin_datainjection_models`.`is_recursive`='1'
                                    AND `glpi_plugin_datainjection_models`.`entities_id` IN ('0','303','68','1')) ) )
                  OR (`is_private` = '1' AND `users_id` = '6'))

Et pour la dropdown

WHERE `step` = '5' 
             AND ((`is_private` = '0' 
                         AND ( `glpi_plugin_datainjection_models`.`entities_id` = '335'  
                                    OR (`glpi_plugin_datainjection_models`.`is_recursive`='1'
                                             AND `glpi_plugin_datainjection_models`.`entities_id` IN ('0','303','68','1')) ) )
                         OR (`is_private` = '1' AND `users_id` = '6'))

à retester


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

#7 2011-04-18 10:51:27

chtonk
Member
Registered: 2008-02-22
Posts: 34

Re: [DataInjection] mais y sont où mes modèles ?

Bonjour et merci pour la réactivité !

désolé pour mon manque à moi de réactivité, mais j'étais en congés la semaine dernière.

remi wrote:

à retester

je viens de mettre à jour le fichier et j'ai testé à nouveau, sans succès. En fait, maintenant, le problème semble se situer ailleurs :
En mode Debug, la requête est la suivante :

SELECT `id`, `name`, `is_private`, `entities_id`, `is_recursive`, `itemtype`, `step`, `comment` 
FROM `glpi_plugin_datainjection_models` 
WHERE ((`is_private` = '0' AND ( `glpi_plugin_datainjection_models`.`entities_id` = '38' OR (`glpi_plugin_datainjection_models`.`is_recursive`='1' AND `glpi_plugin_datainjection_models`.`entities_id` IN ('0')) ) ) OR (`is_private` = '1' AND `users_id` = '2')) 
ORDER BY `is_private` DESC, `entities_id`, name

En l'exécutant, telle quelle, dans phpMyAdmin, elle me renvoie bien une ligne, celle correspondant à mon modèle. Donc, la requête est bonne. Toutefois, dans les listes affichée, dans GLPI, j'ai
Liste des modèles
Aucun modèle trouvé

que je me positionne dans l'entité racine ou bien dans l'entité pour laquelle je veux faire l'import des utilisateurs.


Cordialement,
Guillaume
--
GLPI 0.78.3 en prod - Gentoo RPS II (Linux 2.6.32.2)

Offline

Board footer

Powered by FluxBB