You are not logged in.
Bonjour à tous,
Via le plugin behavior nous imposons aux techniciens de s'attribuer le ticket pour pouvoir le clôturer afin que l'utilisateur final reçoive une notification de clôture lui indiquant qui a traité sa demande.
Ça fonctionne plutôt bien et ça plait aux utilisateurs finaux mais ça impose plusieurs manip à nos techniciens, s'attribuer le ticket, sauvegarder le ticket, changer d'onglet, rédiger la solution, sauvegarder le ticket, et ça c'est quand ils font les choses dans l'ordre, parce que parfois ça donne, rédiger la solution, sauvegarder le ticket [message d'erreur: technicien obligatoire], changer d'onglet, s'attribuer le ticket, sauvegarder le ticket, changer d'onglet [mince ma solution à disparu]... etc
Dans notre cas le rédacteur de la solution sera toujours la personne ayant traité le ticket, est-il donc possible, via une modif du code je pense, d'attribuer le ticket au moment du clic sur le bouton "solution"?
Pour moi ça revient simplement à ajouter la fonction qui se cache sous "le petit bonhomme" à côté de "attribué à" au bouton solution, mais je ne trouve pas dans quel fichier gratter.
Vous pouvez m'aiguiller?
Je vous remercie,
Emilien,
Last edited by egonth01 (2018-07-19 14:26:55)
Offline
Si le seul besoin est de mettre le nom du technicien dans la notification vous pouvez utiliser la balise " dernière modification par "
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Offline
Re bonjour,
J'ai trouvé une solution simple à mon problème, il y en a surement d'autres, plus élégantes, mais celle-ci répond à mon besoin.
Dans le code du plugin behavior j'ai modifié la fonction beforeUpdate (ticket.class.php) dans la partie qui concerne la clôture du ticket, au niveau des ligne 497 à 504:
if ($config->getField('is_tickettech_mandatory')) {
if (($ticket->countUsers(CommonITILActor::ASSIGN) == 0)
&& !isset($input["_itil_assign"]['users_id'])) {
- unset($ticket->input['status']);
- unset($ticket->input['solution']);
- unset($ticket->input['solutiontypes_id']);
+ $ticket->input['_users_id_assign'] = Session::getLoginUserID(false);
- Session::addMessageAfterRedirect(__("Technician assigned is mandatory before ticket is solved/closed",
- 'behaviors'), true, ERROR);
+ $msg = sprintf(__('%1$s %2$s'), __("Technician assigned is mandatory before ticket is solved/closed, assign to", "behaviors"),
getUserName(Session::getLoginUserID(false)));
Session::addMessageAfterRedirect($msg, true);
}
Dans ce cas précis, j'assigne le ticket au user de la session en cours et j'ai transformé le message d'erreur en un message informant l'utilisateur que le ticket lui a été assigné, j'ai du coup également modifié les fichiers de traduction en conséquence.
Emilien
Last edited by egonth01 (2018-07-24 12:38:26)
Offline
Bonjour LaDenrée,
Merci pour la réponse, effectivement j'avais pensé à cette solution au départ mais côté DSI, on m'a fait comprendre que c'était mieux que les tickets soient systématiquement "attribués" (mesure de la charge de travail tout ça tout ça )
Bonne journée,
Emilien,
Offline
Bonjour egonth01,
Ma hiérarchie étant intéressée par ce principe, j'ai téléchargé behaviors, j'ai modifié le code sous plugins/behaviors/inc du ticket.class.php mais rien n'y fait, j'ai toujours le message empêchant la solution si le technicien n'est pas renseigné et par conséquent, pas de technicien attribué de manière automatique. Quelles sont les étapes qu'il me manque ?
Merci d'avance pour votre aide.
David
Offline
bonjour, moi aussi j ai eu le probleme, et il n y a pas que le fichier ticket.class.php a modifier mais aussi le fichier itilsolution.class.php ligne 89
if ($config->getField('is_tickettech_mandatory')
&& ($ticket->countUsers(CommonITILActor::ASSIGN) == 0)) {
//$soluce->input = false;
//$ticket->input['_users_id_assign'] = Session::getLoginUserID(false);
// Session::addMessageAfterRedirect(__("Technician assigned is mandatory before ticket is solved/closed",
// 'behaviors'), true, ERROR);
return;
}
Offline
Salut,
Merci beaucoup, j'avais bien compris qu'il fallait modifier le Itil mais je n'osais pas y aller franchement.
Ça fonctionne parfaitement en tout cas.
Offline