You are not logged in.
Bonjour,
J'ai fait un petit patch pour permettre aux post-only de rouvrir un ticket qui a été fermé depuis moins de 7 jours. Le voilà si ça en intéresse certains:
diff -urN --exclude='*config_db.php*' --exclude='*.swp' --exclude='*cache*' ./front/askReopen.php /var/www/glpi/front/askReopen.php
--- ./front/askReopen.php 1970-01-01 01:00:00.000000000 +0100
+++ /var/www/glpi/front/askReopen.php 2009-03-05 09:39:28.000000000 +0100
@@ -0,0 +1,54 @@
+<?php
+
+define('GLPI_ROOT', '..');
+include (GLPI_ROOT . "/inc/includes.php");
+include (GLPI_ROOT . "/inc/tracking.class.php");
+
+checkRight("create_ticket","1");
+
+//print_r($_POST);
+
+echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=helpdesk.public.php?show=user&ID=$_POST[id]\">";
+
+if(isset($_POST['id'])) {
+ $ID=$_POST['id'];
+ //exec("echo aaaaaa > /tmp/redam.log");
+ global $DB,$CFG_GLPI,$LANG;
+ $job=new Job();
+
+ if ($job->getFromDB($ID)&&haveAccessToEntity($job->fields["FK_entities"])) {
+ if (ereg("old_",$job->fields["status"])){
+ echo "Réouverture en cours<br>";
+ $job=new Job();
+ $job->getFromDB($ID);
+
+ //check that the ticket was closed in less than 7 days
+ $query="SELECT DATEDIFF(NOW(), '$job->fields[closedate]') as dif";
+ $result=$DB->query($query);
+ $data=$DB->fetch_assoc($result);
+ if($data['dif'] > 7 ) {
+ echo "Ticket fermé il y a plus de 7 jours, il n'est pas possible de le rouvrir";
+ } else {
+ $updates[]="status";
+ $updates[]="closedate";
+ $job->fields["status"]="assign";
+ $job->fields["closedate"] = $_SESSION["glpi_currenttime"];
+ $job->updateInDB($updates);
+ //print_r($job->fields);
+
+ $fup=new Followup();
+ //$tkt=$job->fields;
+ $tkt['tracking']=$ID;
+ $tkt['contents']="Réouverture du ticket à la demande de l'utilisateur";
+
+ $tkt['contents']=clean_cross_side_scripting_deep(html_clean($tkt['contents']));
+ $tkt=addslashes_deep($tkt);
+ $fup->add($tkt);
+ }
+ } else {
+ echo "le job déjà ouvert<br>";
+ }
+ }
+}
+
+?>
diff -urN --exclude='*config_db.php*' --exclude='*.swp' --exclude='*cache*' ./inc/tracking.function.php /var/www/glpi/inc/tracking.function.php
--- ./inc/tracking.function.php 2009-01-26 21:46:38.000000000 +0100
+++ /var/www/glpi/inc/tracking.function.php 2009-03-05 09:39:30.000000000 +0100
@@ -2174,6 +2174,19 @@
echo "</script>";
+ //added by redam@smile.fr
+ if ((! $canupdate) && ereg("old_",$job->fields["status"])) {
+ //check that the ticket was closed in less than 7 days
+ //print_r($job->fields);
+ $query="SELECT DATEDIFF(NOW(), '".$job->fields['closedate']."') as dif";
+ $result=$DB->query($query);
+ $data=$DB->fetch_assoc($result);
+ //echo $data['dif'];
+ if($data['dif'] < 7 ) {
+ echo " <form action=\"askReopen.php\" method=\"post\"><input type=\"hidden\" name=\"id\" value=\"".$job->fields['ID']."\"><input type=\"submit\" value=\"Rouvrir le ticket\" class='submit'></form>";
+ }
+ } //end added by redam@smile.Fr
+
echo "<div id='viewfollowup'>\n";
echo "</div>\n";
À appliquer avec un "patch -p1 < fichier.patch" en étant dans le dossier glpi.
Ça rajoute un bouton dans le descriptif du ticket si celui-ci est fermé pour le repasser en statut "en cours" et un suivi est ajouté indiquant la réouverture du ticket à la demande de l'utilisateur.
Cordialement
Offline
ça pourrait être intéressant à rajouter dans le coeur avec une durée à définir dans la config de glpi.
Beau travail
Offline