Generic Object¶
- Lien des sources : https://github.com/pluginsGLPI/genericobject
- Téléchargement : https://github.com/pluginsGLPI/genericobject/releases
This user manual applies to version 2.14 of the GLPI Generic Object Plugin.
Pré-requis¶
Please refer to plugin page <https://plugins.glpi-project.org/#/plugin/genericobject>.
Fonctionnalités¶
Ce plugin vous permet d’ajouter de nouveaux type d’objets qui seront intégrés dans GLPi
Il supporte les fonctionnalités suivantes de GLPi :
- gestion des Entités et sous-Entités ;
- recherche ;
- modèles ;
- historique ;
- intégration dans l’assistance ;
- intégration dans le plugin d’injection de fichiers CSV :
- intégration dans le plugin de désinstallation d’objets ;
- intégration dans le plugin de gestion des commandes.
Exemple d’utilisation¶
Objectif : gérer votre flotte de véhicules de la même manière que le reste de votre parc.
- Créer un nouvel objet d’inventaire de type véhicule.
- Ajouter les champs adéquats pour un véhicule, comme : nom, numéro de série, numéro d’inventaire, type, modèle, couleur, état, etc.
- Décrire le comportement d’un véhicule : visible dans les sous entités, conserver l’historique, etc.
- Ajuster les droits sur véhicules.
- Activer l’objet véhicules.
- Gérer votre collection de véhicules dans GLPI.
Installer le plugin¶
- Décompresser l’archive.
- Déplacer le répertoire
genericobject
dans le répertoire <GLPI_ROOT>/plugins`. - Se rendre sur la page Configuration > Plugins
- Installer et activer le plugin
Utilisation¶
Créer un nouveau type d’objet¶
Ceci constitue la première étape.
- Cliquer sur le bouton + dans le formulaire de configuration du plugin.
- Créer un nouvel objet de type inventaire :
- nom* : requis, en minuscules, et doit être composé de lettres uniquement ;
- libellé : par défaut, identique au nom.
- Valider.
- Activer le nouveau type d’objet pour l’utiliser.
Exemple : créer un nouveau type d’objet d’inventaire véhicule.
Modifier les libellés¶
Pour chaque type, un fichier de langue est disponible dans <GLPI_ROOT>/files/_plugins/genericobject/locales/itemtype/
Le plugin créé :
- un fichier de langue pour la langue courante
- un fichier de langue pour la langue par défaut de GLPI
Note
Si la langue courante et la langue par défaut sont identiques, un seul fichier sera créé.
Pour modifier le libellé du type d’objet, pour la langue anglaise, éditer le fichier :
<?php
// <GLPI_ROOT>/files/_plugins/genericobject/locales/<itemtype>/<itemtype>.en_GB.php
$LANG['genericobject']['<itemtype>'][1] = "<type's label>";
You can also define labels globally in <GLPI_ROOT>/files/_plugins/genericobject/locales/fields.<lang>.php
files:
<?php
// <GLPI_ROOT>/files/_plugins/genericobject/locales/<itemtype>/<itemtype>.en_GB.php
$LANG['genericobject']['fields']['<itemtype>'] = "<type's label>";
Configuration du comportement¶
Exemple : décrire le comportement d’un véhicule : visible dans les sous entités, conserver l’historique, etc.
Le nouveau type sera géré de la même manière que les types usuels de GLPI (ordinateurs, moniteurs, matériels réseau, etc.)
Note
Tous les objets sont au moins assignés à une entité
L’onglet comportement vous permet de définir :
- sous-entités : autorise le type à être récursif ;
- Assistance : autorise l’objet à être associé à un ticket ;
- Corbeille : utiliser la fonctionnalité corbeille de GLPI ;
- Notes : utiliser la fonctionnalité notes de GLPI ;
- Historique : autorise l’historique pour ce type ;
- Modèles : autorise la gestion de modèles ;
- Documents : permet à des documents d’être attachés à ce type ;
- Prêts : autorise le prêt d’objet ;
- Contrats : lie un objet à un ou plusieurs contrats ;
- Connexions réseau : permet l’utilisation et la gestion de ports réseau pour ce type ;
- Plugin d’injection de fichiers CSV : permet à ce type d’être disponible pour utilisation dans le plugin ;
- Plugin de désinstallation d’objets : autorise la désinstallation de ce type ;
- Plugin de gestion des commandes : autorise le lien de ce type à une commande ;
Ajouter des champs¶
Exemple : ajouter les champs adéquats pour un véhicule, comme : nom, numéro de série, numéro d’inventaire, type, modèle, couleur, état, etc.
Aller à l’onglet Champs.
Le plugin est fourni avec plusieurs champs prêts à l’utilisation :
- Nom
- Type
- Modèle
- Numéro de série
- Numéro d’inventaire
- Utilisateur
- Groupe
- Statut
- Commentaires
- Notes
- Emplacement
- Autre
- Constructeur
- URL
- Date de création
- Date d’expiration
- Catégorie
- Visible dans l’assistance
- Technicien en charge du matériel
- Domaine
- Contact
- Numéro de contact
Note
L’utilisation de certains comportement entraînera l’ajout automatique de champs dans l’objet :
- connexion réseau => emplacement
- prêts => emplacement
- assistance => visible dans l’assistance
- notes => notepad
Intégration assistance¶
Pour utiliser un objet dans l’assistance, utiliser la configuration suivante :
- Dans l’onglet Comportement : utiliser l’assistance doit être défini à Oui.
- Si le champ Utilisateur est défini, l’objet sera visible dans la liste Mes objets (comme un objet dont l’utilisateur est propriétaire).
- Si le champ Groupe est défini, l’objet sera visible dans la liste Mes objets également (comme un objet dont le propriétaire est un groupe auquel l’utilisateur appartient).
- Si le champ Assistance visible est défini et que sa valeur est à Non dans l’objet, ce objet ne sera pas visible du tout dans l’assistance.
Ajouter de nouveaux champs¶
Note
Les nouveaux champs seront disponibles pour tous les types d’objets.
- Créer un nouveau fichier nommé
<GLPI_ROOT>/files/_plugins/genericobject/fields/<type>.constant.php
Par exemple, pour un type véhicule le fichier de constantes sera <GLPI_ROOT>/files/_plugins/genericobject/fields/car.constant.php
.
Notez que la première ligne du fichier doit être la suivante, sans quoi les nouveaux champs n’apparaîtront pas dans la liste :
<?php
global $GO_FIELDS, $LANG;
- Ajouter les nouvelles définitions de champs.
Ajouter un champ liste déroulante simple¶
<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name'] = $LANG['genericobject']["<type's name>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field'] = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type'] = 'dropdown';
Note
La variable de langue doit être définie dans le fichier de langues (voir les explications ci-dessus).
- Ajouter un champ liste déroulante qui est assigné à une entité :
<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name'] = $LANG['genericobject']["<type's name>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field'] = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type'] = 'dropdown';
//Does the dropdown take care of entities ? (true/false)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['entities_id'] = true;
//Can values be recursive ? (true/false, only taking in account if entities_id is set to true)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['is_recursive'] = true;
Ajouter un champ liste déroulante hiérarchique¶
<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name'] = $LANG['genericobject']["<type's name>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field'] = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type'] = 'dropdown';
//Is it a tree-dropdown, or a simple one ? (true/false)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['is_tree'] = true;
Note
Vous pouvez utiliser en même temps les paramètres suivants : entities_id, is_recursive, is_tree.
Ajout d’un champ liste déroulante basé sur les objets du coeur de GLPI (utilisateur, emplacement, …)¶
<?php
$GO_FIELDS['users_id_passengers_id']['name'] = 'Passenger';
$GO_FIELDS['users_id_passengers_id']['input_type'] = 'dropdown';
Note
Les noms entre crochets ([]
) DOIVENT commencer par users_id
pour être reconnus comme étant des champs basés sur la liste des utilisateurs de GLPI.
Voir le fichier <GLPI_ROOT>/files/_plugins/genericobject/fields/field.constant.php
pour une liste complète des champs disponibles.
Ajouter une liste déroulante globale¶
Une liste déroulante globale peut être utilisée dans tous les types d’objets. Un bon exemple serait :
<?php
$GO_FIELDS['categories_id']['name'] = $LANG['common'][36];
$GO_FIELDS['categories_id']['input_type'] = 'dropdown';
$GO_FIELDS['categories_id']['dropdown_type'] = 'global';
Une table pour les catégorie spécifique sera créée pour chaque type d’objet. Le nom de la table et le nom du champ seront concaténés de cette manière :
- table :
glpi_plugin_genericobject_<itemtypename>_category
- nom du champ :
plugin_genericobject_<itemtype>categories_id
Ajouter un champ entier¶
<?php
$GO_FIELDS['testinteger']['name'] = 'testinteger';
$GO_FIELDS['testinteger']['input_type'] = 'integer';
$GO_FIELDS['testinteger']['min'] = 10; //not mandatory, by default 0
$GO_FIELDS['testinteger']['max'] = 40; //not mandatory, by default 100
$GO_FIELDS['testinteger']['step'] = 3; //not mandatory, by default 1
Ajouter un champ texte¶
<?php
$GO_FIELDS['mytextfield']['name'] = 'My text field';
$GO_FIELDS['mytextfield']['input_type'] = 'text';
Modifié dans la version 2.1.2: En ajoutant l’argument suivant, vous indiquerez au plugin que ce champ peut être généré automatiquement en utilisant un modèle :
<?php
$GO_FIELDS['mytextfield']['autoname'] = true;
Ajouter un champ Oui/Non¶
<?php
$GO_FIELDS['mybooleanfield']['name'] = 'My boolean field';
$GO_FIELDS['mybooleanfield']['input_type'] = 'bool';
Ajouter un champ date¶
<?php
$GO_FIELDS['creationdate']['name'] = $LANG['genericobject']['fields'][30];
$GO_FIELDS['creationdate']['input_type'] = 'date';
Ajouter un champ date et heure¶
<?php
$GO_FIELDS['creationdate']['name'] = $LANG['genericobject']['fields'][30];
$GO_FIELDS['creationdate']['input_type'] = 'datetime';
Note
Si vous ne souhaitez pas que le champ puisse être modifié en utilisant une action de masse, ajouter la ligne suivante à sa définition :
<?php
$GO_FIELDS['myfield']['massiveaction'] = false;
Ajouter des champs globaux¶
Pour rendre vos champs accessibles depuis tous les types d’objets :
- Créer un fichier nommé
<GLPI_ROOT>/files/_plugins/genericobject/fields/field.constant.php
- Ajouter les définitions dans ce fichier.
Configurer les droits¶
Vous pouvez définir des droits d’accès pour chaque type d’objet, pour chaque profil. Les options disponibles sont :
- droits sur le type : pas d’accès, lecture, écriture.
- droits pour associer ce type d’objet aux tickets : oui, non.
Pour associer les droits, vous pouvez au choix :
- Utiliser l’onglet Droits dans le formulaire du type d’objet.
- Aller dans Administration > Profils pour administrer les droits de chaque profil.
Utiliser le nouveau champ¶
Activer le nouveau type, il est désormais prêt à être utilisé.
Le nouveau type est disponible pour les utilisateurs depuis le menu Plugins > Gestion d’objets.
Exemple d’utilisation de Generic Object comme GMAO¶
But de cette documentation¶
Présenter une utilisation complète de Generic Object comme GMAO (Gestion de Maintenance Assistée par Ordinateur) dans un environnement biomédical.
À la fin de cette documentation, vous aurez :
- une entité Biomed dédiée (sous l”Entité racine)
- contenant des objects Biomedical (dans le menu Parc)
- avec des champs pré-définis et personnalisés
- gérée par des utilisateurs avec le profil Admin_biomed
Étapes¶
Les étapes suivantes partent du principe que vous avez une habilitation Super-Admin :
- Installer Generic Object sur GLPI (validé avec genericobject >= 0.85-1.0 et GLPI >= 0.90)
- Configuration de Generic Object
- Configuration de GLPI
- Démarrer l’utilisation de Generic Object et GLPI
Installer Generic Object sur GLPI¶
Voir la section Installer le plugin.
Configuration de Generic Object¶
Créer votre type d’objet¶
Voir la section Créer un nouveau type d’objet et utiliser biomedical comme identifiant interne. Le libellé sera défini automatiquement à Biomedical (avec un B majuscule).
Après une connexion/déconnexion, vous verrez le menu Biomedical dans le Parc.
Définir les nouveaux champs du type Biomedical¶
Ces champs seront utilisables uniquement par les objets du type Biomedical
- Créer un nouveau fichier appelé :
<GLPI_ROOT>/files/_plugins/genericobject/fields/biomedical.constant.php
- Ajouter le contenu suivant :
<?php
global $GO_FIELDS, $LANG;
// CODE CNEH
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][1];
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['field'] = 'cnehcode';
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['input_type'] = 'dropdown';
// REFORME (yes or no)
$GO_FIELDS['reformed']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][2];
$GO_FIELDS['reformed']['input_type'] = 'bool';
// CLASSE CE (3 choix possibles 1,2a ou 2b)
$GO_FIELDS['plugin_genericobject_classeces_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][3];
$GO_FIELDS['plugin_genericobject_classeces_id']['field'] = 'classce';
$GO_FIELDS['plugin_genericobject_classeces_id']['input_type'] = 'dropdown';
// UF (Unité Fonctionnelle)
$GO_FIELDS['plugin_genericobject_ufs_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][4];
$GO_FIELDS['plugin_genericobject_ufs_id']['field'] = 'uf';
$GO_FIELDS['plugin_genericobject_ufs_id']['input_type'] = 'dropdown';
// PRESTATAIRE BIOMED
$GO_FIELDS['plugin_genericobject_prestataires_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][5];
$GO_FIELDS['plugin_genericobject_prestataires_id']['field'] = 'prestataire biomed';
$GO_FIELDS['plugin_genericobject_prestataires_id']['input_type'] = 'dropdown';
// TYPE D'EQUIPEMENT BIOMED
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][6];
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['field'] = "type d 'equipement biomed";
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['input_type'] = 'dropdown';
// Criticite
$GO_FIELDS['plugin_genericobject_criticites_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][7];
$GO_FIELDS['plugin_genericobject_criticites_id']['field'] = 'criticite';
$GO_FIELDS['plugin_genericobject_criticites_id']['input_type'] = 'dropdown';
// Numéro marquage CE
$GO_FIELDS['plugin_genericobject_marquageces_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][8];
$GO_FIELDS['plugin_genericobject_marquageces_id']['field'] = 'marquagece';
$GO_FIELDS['plugin_genericobject_marquageces_id']['input_type'] = 'dropdown';
// Classe électrique
$GO_FIELDS['plugin_genericobject_classeelecs_id']['name'] = $LANG['genericobject']['PluginGenericobjectBiomedical'][9];
$GO_FIELDS['plugin_genericobject_classeelecs_id']['field'] = 'classeelec';
$GO_FIELDS['plugin_genericobject_classeelecs_id']['input_type'] = 'dropdown';
?>
Avertissement
Le s_id
de fin est obligatoire dans [plugin_genericobject_field*s_id*]
. Le framework GLPI impose que les champs de clés étrangères se terminent par s_id
. En base de données, glpi_plugin_genericobject_fields
est le nom de la table et id
, sa clé étrangère. Voir la documentation développeur de GLPI.
Définir les libellés des champs¶
Voir la section Modifier les libellés.
- Éditer vos fichiers de locales, par exemple :
<GLPI_ROOT>/files/_plugins/genericobject/locales/biomedical/biomedical.fr_FR.php
- Ajouter le contenu suivant à la fin du fichier :
<?php
// Fields
$LANG['genericobject']['PluginGenericobjectBiomedical'][1]="Code CNEH";
$LANG['genericobject']['PluginGenericobjectBiomedical'][2]="Réformé";
$LANG['genericobject']['PluginGenericobjectBiomedical'][3]="Classe CE";
$LANG['genericobject']['PluginGenericobjectBiomedical'][4]="UF";
$LANG['genericobject']['PluginGenericobjectBiomedical'][5]="Prestataire Biomed";
$LANG['genericobject']['PluginGenericobjectBiomedical'][6]="Type d'équipement biomed";
$LANG['genericobject']['PluginGenericobjectBiomedical'][7]="Criticité";
$LANG['genericobject']['PluginGenericobjectBiomedical'][8]="Marquage CE";
$LANG['genericobject']['PluginGenericobjectBiomedical'][9]="Classe électrique";
Définir les comportements¶
Dans le menu Plugins > Gestion d’objets, sur l’onglet Principal, sélectionner :
- Élément à la corbeille
- Historique
- Informations financières et administratives
- Documents
- Recherche globable
- Assistance
- Modèles
- Contrats
- Recherche globable
Cette action ajoutera des champs pré-définis à votre type d’objet
Ajouter des champs à votre type d’objet¶
Dans le menu Plugins > Gestion d’objets, sur l’onglet Champs, vous pouvez maintenant ajouter des champs au type d’objet Biomedical :
- champs pré-définis (champs natifs à GLPI)
- nouveaux champs (définis dans la section Définir les nouveaux champs du type Biomedical)
Configuration de GLPI¶
Définir le profil Admin_biomed¶
- Cloner le profil Admin
- Définissez les droits suivants dans le profil Admin_biomed :
- Administration > Profils > Admin_biomed > Onglet Parc > Désélectionner tout
- Administration > Profils > Admin_biomed > Onglet Assistance > Association > Matériels associables à un ticket > Biomedical
- Administration > Profils > Admin_biomed > Onglet Gestion > Sélectionner tout
- Administration > Profils > Admin_biomed > Onglet Gestion d’objets > Biomedical > Sélectionner tout
Note
Avec ces paramètres, les utilisateurs avec le profil Admin_biomed voient uniquement Biomedical dans le menu Parc
Définir l’entité Biomed et les règles d’habilitations¶
- Créer l’entité Biomed sous l”Entité Racine dans Administration > Entités
- Configurer les règles d’habilitations pour assigner le profil Admin_biomed aux utilisateurs de l’entité Biomed
Démarrer l’utilisation de Generic Object et GLPI¶
En tant qu’utilisateur Admin_biomed, vous pouvez créer votre premier objet dans Parc > Biomedical.
Pour gagner du temps, définissez les valeurs des nouveaux champs dans Configuration > Intitulés > Gestion d’objets.