Code Monkey home page Code Monkey logo

escalade's Introduction

Escalade GLPI plugin

License Follow twitter Telegram Group Project Status: Active GitHub release GitHub build

Screenshot

This GLPI plugin aims to simplifier the ticket escalation process in GLPI.
It also adds a graphical historical for assigned groups.

A new dashboard on the user's home page is added, and a new criteria in ticket's search engine.
To finish, there's also a clone ticket feature, accessible through an icon on the ticket form.

Documentation

We maintain a detailed documentation here -> Documentation

Contact

For notices about major changes and general discussion of Escalade, subscribe to the /r/glpi subreddit. You can also chat with us via @glpi on Telegram.

Professional Services

The GLPI Network services are available through our Partner's Network. We provide special training, bug fixes with editor subscription, contributions for new features, and more.

Obtain a personalized service experience, associated with benefits and opportunities.

Contributing

  • Open a ticket for each bug/feature so it can be discussed
  • Follow development guidelines
  • Refer to GitFlow process for branching
  • Work on a new branch on your own fork
  • Open a PR that will be reviewed by a developer

Copying

  • Code: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL-2.0).

escalade's People

Contributors

adrienclairembault avatar ales-infotel avatar ccailly avatar cconard96 avatar cedric-anne avatar dependabot[bot] avatar flegastelois avatar gitter-badger avatar keha35 avatar korial29 avatar lainow avatar neeftarah avatar niloultimate avatar orthagh avatar p-bo avatar rom1-b avatar romainlvr avatar sthivet avatar stonebuzz avatar trasher avatar tsmr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

escalade's Issues

New option for cloning ticket

We would like to add an option for cloning tickets.

  • Either the ticket is created directly (current operation)
  • Either the system launches the opening of a new ticket with copy of the fields (but without automatic save).

In addition, the system will propose to choose whether a link with the old ticket should be automatically created.

Are you ok with these features ? We can send you a PR for this.
Can you answer quickly please ?

Thank you

Fatal error: Uncaught Error: Class 'PluginEscaladeConfig' not found

Hi,

My environment is characterized by the following versions:

  • GLPI 9.2.1
  • Escalade 2.2.1

When the Escalade plugin is enabled and I access the 'plugins' page, the following error is displayed with GLPI in debug mode:

Fatal error: Uncaught Error: Class 'PluginEscaladeConfig' not found in [redacted path]\glpi\plugins\escalade\setup.php:49 Stack trace: #0 [redacted path]\glpi\inc\plugin.class.php(145): plugin_init_escalade() #1 [redacted path]\glpi\inc\plugin.class.php(418): Plugin::load('escalade', true) #2 [redacted path]\glpi\front\plugin.php(95): Plugin->listPlugins() #3 {main} thrown in [redacted path]\glpi\plugins\escalade\setup.php on line 49

ISSUE: Reassign the ticket to the original group

GLPI 9.5.3
Escalade 2.6.0
"Reassign the ticket to the original group" don't work with the assignment rules.
I create a rule with default assignement to us and after an other rule who assign to an other teams.
When the ticket is resolved, it return to the second team and not the first assignement.
Best regards,

Error: change of status of the ticket

After the creation of a ticket if I assign a group to the ticket when saving, it changes the ticket status in "In progress"
In the plugin configuration: Ticket status after climbing -> New

I want that statut in New after I assign a group

escalade dans les attribution de groupe

Bonjour,
Je ne comprends pas comment fonctionne l'escalade dans les attribution de groupes.
J'ai bien filtré les groupes, cependant je vois tous les groupes.
Je souhaiterai voir que les groupes indiqués en escalade.
Cordialement

configuartion plugin escalade

Escalade filtré

Bonjour,

J'ai installé le plugin en V2.1.0 sur un GLPI en V9.1.3
Je n'arrive pas à filtrer l'escalade.
Je vais bien sur Groupe A --> Onglet escalade --> Escalade vers Groupe B
Je vais dans la configuration du plugin Activer le filtrage sur les groupes d'attribution = Oui

Lorsque je vais sur un ticket du Groupe A et que je clique sur l'icone pour réattribuer le ticket, je peux le faire vers l'ensemble des groupes.
Y a t il une configuration particulière à effectuer ?

Actors button removal not fully functionnal and only on ticket form

Hello

First, actors buttons removal only work on ticket form, not change neither problem form.

Second, if you don't hide the "group_ticket" button, no button will be hidden (there is a if in the setup.php that only verify the value of group_ticket, neither ticket_user ou supplier_ticket etc.

I've fixed this and will send a PR, this issue is for history

Undefined index: use_filter_assign_group

After installation the php error log is full of this messages.

2016-03-15 16:50:46 [1181@mucglpi1p]
*** PHP Notice(8): Undefined index: use_filter_assign_group
Backtrace :
plugins/escalade/inc/config.class.php:248
plugins/escalade/setup.php:16 PluginEscaladeConfig::loadInSession()
inc/plugin.class.php:128 plugin_init_escalade()
inc/includes.php:120 Plugin::load()
front/user.form.php:38 include()

Using GLPI 0.90.1 on Centos7

Any ideas ?

Install plugin from develop branch

While installting from master and upgrading to develop seems to work fine, I got some error and notices installing directly from develop branch:

2017-06-19 06:25:56 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_configs
      VALUES (NULL, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, \'4\')
  Error: Column count doesn't match value count at row 1
  Backtrace :
  plugins/escalade/hook.php:89                       
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()

==> /var/www/webapps/glpi/files/_log/php-errors.log <==
2017-06-19 06:25:56 [2@LF014]
  *** PHP Notice(8): Undefined index: use_filter_assign_group
  Backtrace :
  plugins/escalade/hook.php:208                      
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()

==> /var/www/webapps/glpi/files/_log/sql-errors.log <==
2017-06-19 06:25:56 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (2, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()
2017-06-19 06:25:56 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (3, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()
2017-06-19 06:25:56 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (4, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()
2017-06-19 06:25:56 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (5, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()
2017-06-19 06:25:56 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (6, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:693                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()

As far as I can see, the real error is only the first one (error inserting configuration); all other are relat"ed.

Possibilité d'avoir 2 techniciens

Avec le plugin Escalade, nous pouvons avoir qu'un seul technicien en charge du ticket, mais si plusieurs sont attribués dessus. Avec le plugin, c'est impossible.

Escalation Order

When I want to scale from one group to another, in the history figure that first assigns it and then removes the link to the previous one, can it be configured to be the other way around? because I'm having problems with notifications

historyglpi

SQL Errors on climb group

[2019-03-04 14:14:05] glpisqllog.ERROR: DBmysql::query() in C:\wamp\www\glpi\inc\dbmysql.class.php line 177
  *** MySQL query error:
  SQL: INSERT INTO `glpi_tickettasks` (`tickets_id`, `is_private`, `state`, `content`, `users_id`, `date`, `timeline_position`, `date_creation`, `date_mod`) VALUES ('55070', '1', '0', 'Escalade vers le groupe l'assistance', '2', '2019-03-04 14:13:58', '1', '2019-03-04 14:13:58', '2019-03-04 14:13:58')
  Error: Erreur de syntaxe près de 'assistance', '2', '2019-03-04 14:13:58', '1', '2019-03-04 14:13:58', '2019-03-04' à la ligne 1
  Backtrace :
  inc\dbmysql.class.php:821                          
  inc\commondbtm.class.php:658                       DBmysql->insert()
  inc\commondbtm.class.php:1140                      CommonDBTM->addToDB()
  plugins\escalade\inc\ticket.class.php:272          CommonDBTM->add()
  plugins\escalade\hook.php:396                      PluginEscaladeTicket::addHistoryOnAddGroup()
  inc\plugin.class.php:1048                          plugin_escalade_pre_item_add_group_ticket()
  inc\commondbtm.class.php:1091                      Plugin::doHook()
  inc\commonitilobject.class.php:842                 CommonDBTM->add()
  inc\ticket.class.php:1304                          CommonITILObject->prepareInputForUpdate()
  inc\commondbtm.class.php:1362                      Ticket->prepareInputForUpdate()
  front\ticket.form.php:72                           CommonDBTM->update()

add addslashes to $group->getName() ? (plugins\escalade\inc\ticket.class.php:272)

Options "Use the technician's group" and "Remove technician(s) on escalation" don't work well when both are "on"

Hello!
When "Use the technician's group" is on and "Remove technician(s) on escalation" is on and there is a technician that belongs to more than one groups, then loop may occurr.
Scenario:

  • technician belongs to groups "A" and "B",
  • "Use the technician's group" is set to "first",
  • "Remove technician(s) on escalation" is set,
  • ticket is assigned to group "B",
  • technician wants to be assigned to this ticket, no change to group should occur.

Under this scenario, technician's goal is impossible to achieve. When he assigns himself to a ticket, then group "B" is replaced with group "A". Next, when he assigns group "B" to a ticket, then he is deleted from a ticket.

Proposition:
When a ticket is escalated to a different group, and assigned technician is a member of this group, then technician should not be removed from a ticket.

Error: change of status of the ticket

After the creation of a ticket if I assign a group to the ticket when saving, it changes the ticket status in "New."

In the plugin configuration: Ticket status after climbing -> no change
There is the same mistake if I put the current status (planned)

capture

Improve escalation history table

Hello,

I want to add some informations in escalation history table :

  • Previous group assigned (Group A)
  • Counter of escalations between Group A (previous) and Group B (new assigned group)
  • New search option : total number of escalations in one ticket
  • New search option : total number of escalations in one ticket between 2 distincts groups

I'll submit a new PR right after this issue.

Erreur Plugin Escalade

Bonjour,

Suite à la mise à jour de GLPI en 9.4.2 et à la mise en place du plugin Escalade en 2.4.2, l'erreur suivante apparait dans le fichier php-errors.log

[2019-04-17 15:31:00] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in C:\xampp\htdocs\glpi\inc\toolbox.class.php line 659
*** PHP Notice(8): Undefined index: glpiID
Backtrace :
plugins\escalade\inc\config.class.php:283
plugins\escalade\setup.php:54 PluginEscaladeConfig::loadInSession()
inc\plugin.class.php:168 plugin_init_escalade()
inc\includes.php:104 Plugin::load()
front\cron.php:38 include()
{"user":"@SRV-SIC"}

Ticket without a group don't show the groups' history

Hi.

I'm using the plugin and I activated the option "Display delete button -> Assigned To -> Group".

When I delete the active group, all the history desappeared. If then I assign a group again, the history is showed correctly.

Problem with status after escalade

Hi,
I have a problem with the option "ticket status after escalade". If this config is set to "new". On a ticket with the new status if we escalade the ticket, the status after esalade is Processing (assigned).

I found a fix to this is to add following lines in ticket.class.php at the end of item_update function :

if (isset($item->input['_itil_assign']['groups_id']) &&
$_SESSION['plugins']['escalade']['config']['ticket_last_status'] != -1) {
$tickets_id = $item->input['id'];
$ticket = new Ticket();
$ticket->update([
'id' => $tickets_id,
'status' => $_SESSION['plugins']['escalade']['config']['ticket_last_status']]);
}

Russian translation

Hello!
I've downladed and installed this plugin and fin it very useful.

So i've translated it to Russian with .po and .mo

Unfortunately, i can't attach these files here, and i not familiar with git as well

How can i transfer locale files?

I feel dumb... Please help me!

Hello,

I just installed the plugin (v 2.3.3) on my GLPI (v 9.3.3).
We have three levels of support.

I don't understand how it is supposed to work.
First : If I add the Level 2 as escalation in the Level 1 group (Opn the Level 1 group settings, go to Escalation Tab and add Level 2), does it means I can send ticket from level 1 to level 2 or the opposite?

Second : I tried both ways and I can manage to see the escalation button in the ticket form. Do I need to make something else?

Sorry for my dumb question but I fell lost :-/

Thanks

Traduction manquante dans la version 2.1.0

Bonjour
Certains textes ne sont pas traduits en français notamment dans la configuration du plugin sur la page

Ex :
"a time of creation" et "a time of modification"

et enfin : "Display delete button of assigned suppliers"

Merci

Translation to spanish

My contribution, translate to spanish, these translations do not refresh or show them in the form, I do not know why:

Display delete button of assigned suppliers --> Mostrar el Botón de eliminación de los proveedores asignados
a time of creation --> en el momento de la creación
a time of modification --> en el momento de la modificación

Translate_es_ES.tar.gz

API GLPI

Hello,

I'm using the API REST of GLPI and when i'm changing or deleting & adding new groups to tickets, the plugin doesn't historize the group.

The solution would be to add histories with the API, but we need to add profile for interact with the plugin in using the API.

Undefined variable $first_trace

Hey there, I'm currently running some on GLPI with the latest version 9.2.3 and the latest version of this plugin (2.3.3) and I keep getting this error:

Undefined variable: first_trace in /var/www/html/glpi/plugins/escalade/inc/ticket.class.php at line 253

I checked the code and indeed, the variable just appears out of the blue. Even a search through the entire plugin folder doesn't turn up anything aside from the place where it's used at line 253. Am I missing something?

Confilt avec le plugin Formulaire

Bonjour,

Lors de la création d'un ticket via le plugin formulaire, le technicien qui doit y être associé l'est puis supprimé :

928904	07-04-2017 15:26	xxxxxx (yyy)	Utilisateur	Supprimer un lien avec un élément : xxxxxx (yyy)
928903	07-04-2017 15:26	xxxxxx (yyy)	Statut		Changement de En cours (Attribué) à Nouveau
928902	07-04-2017 15:26	xxxxxx (yyy)	Utilisateur	Ajout d'un lien avec un élément : xxxxxx (yyy)

Si le plugin Escalade est désactivé, l'assignation reste effective sur le ticket.

Une issue a également été ouverte sur leur dépôt : pluginsGLPI/formcreator#574

Merci d'avance 👍

Error on activating plugin

hi,

i´m trying to install the plugin on glpi 9.4.6 and i can install and enable it, but after a few minutes the plugin simply stops working, when going to setup - plugins it show error/to clean

tested on 2.4.3 and 2.4.4

Bug filter escalade

Purpose of the query: View tickets that have not been passed by a given group.

image_paste657620

The group comes out despite the filter

image_paste7150736

Queries error at install

Following 040e7ca; installation of the develop actually fails.

2017-08-31 08:04:53 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_configs
      VALUES (NULL, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, \'4\')
  Error: Column count doesn't match value count at row 1
  Backtrace :
  plugins/escalade/hook.php:89                       
  inc/plugin.class.php:720                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()

==> /var/www/webapps/glpi/files/_log/php-errors.log <==
2017-08-31 08:04:53 [2@LF014]
  *** PHP Notice(8): Undefined index: use_filter_assign_group
  Backtrace :
  plugins/escalade/hook.php:208                      
  inc/plugin.class.php:720                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()

==> /var/www/webapps/glpi/files/_log/sql-errors.log <==
2017-08-31 08:04:53 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (2, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:720                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()
2017-08-31 08:04:53 [2@LF014]
  *** MySQL query error:
  SQL: INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)
                     VALUES (3, )
  Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 2
  Backtrace :
  plugins/escalade/hook.php:214                      
  inc/plugin.class.php:720                           plugin_escalade_install()
  front/plugin.form.php:48                           Plugin->install()

plugin blocks changes in ticket tab for tech profile

Hi,

I'm using GLPI 9.5.0 and installed the plugin, but after creating tickets with this plugin enabled, a user in technician profile can't change anything in the ticket tab, only user in admin profile can't make changes. Why this happens? Is configurable?

User in technician profile:

escale-plugin-error

User in Admin profile:

escale-plugin-error2

Central page showing misplaced filters

We just updated the plugin to the latest version, to be compatible with GLPI 9.5.
We noticed that filters "Tickets to close (climbed)" and "Tickets to follow (climbed)" are misplaced.
They both should be diplayed in the "Group View" and we can see them in the "Personal View" and "RSS feed"

image

image

Escalated group history allows reassignment to non-technical group

Hi.

Due to the renewal / cancellation of support contracts, a group [GROUP1] that has intervened in a ticket that is still in progress, can be replaced (expired contract) by a new one (new contract) [GROUP2].

When this happens, the first group is preserved en the application [GROUP1] but the 'is_assign' property is disabled, and thus cannot be used in new escalations.

But since it (GROUP1) is still in the escalation history, the plugin does allow the ticket (change or problem) to be assigned again to the same group despite now having the 'is_assign' property disabled.

Is it possible to incorporate a control into the plugin by checking the 'is_asigned' property before it is scaled back from the history? Prevents it and shows a warning for the reason? Or is it a configurable option for each organization?

Actual version: GLPI 9.4.5 - Escalade 2.4.4

Error in group list for search

Version plugin 2.1.0

In the search criterion "Group concerned by the escalation" in the list of tickets, the groups present are the requesting groups whereas these should be assign groups.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.