Gestion du champ duplicate_id

MantisBT forum for users who prefer to ask and answer questions in French.

Moderators: Developer, Contributor

Post Reply
achabb
Posts: 15
Joined: 23 May 2014, 06:50

Gestion du champ duplicate_id

Post by achabb »

Bonjour,

j'ai trouvé beaucoup d'explication dans le ticket "Ajout de colonne sur la vue "Affichage des bugs"" à propos du champ Duplicate_id, sauf comment l'activer : lorsque je copie (fonction copie dans la page "afficher les incidents") un ticket Mantis d'un projet un autre : le ticket est bien copié (chacun a son propre Id) et en double dans la base (c'est bien ce que je recherche) par contre le champ duplicate_id reste à 0 dans les 2 tickets => je n'arrive donc pas à relier automatiquement les 2 tickets.

Pour explication, j'ai une partie du Mantis qui n'est visible que par nos clients (un certain nombre de projets) et le service "Support", lorsque par exemple les développeurs doivent intervenir, plutôt que d'écrire tout et n'importe quoi à la vue du client, nous avons monté des projets internes vus par tous les services de l'entreprise et le service "Support" copie le ticket "client" dans l'un des projets internes => d'où le besoin du duplicate_id afin que le support puisse remonter au client l'évolution de l'anomalie du ticket intene dans le ticket d'origine.

merci d'avance de votre aide.
Alain
achabb
Posts: 15
Joined: 23 May 2014, 06:50

Re: Gestion du champ duplicate_id

Post by achabb »

Bonjour,

Après pas mal de recherche, à priori le Dupplicate_Id ne serait pas pour une utilisation lors de la copie, mais lors de la relation "Duplicate" ...
J'ai donc adapté à mes besoins de créer le Duplicate_id lors de la commande "copie" en ajoutant un Trigger à la table mantis_bug_histoy_table : je me suis rendu compte que l'information qui m'intéressait était écrite dans la table pour 2 types spécifiques :
- type 20 : le bug_id est celui de l'ancien bug, la new_value contient l'id du nouveau bug créé
- type 21 : le bug_id est celui du nouveau bug, la new_value contient l'id de l'ancien bug
Je force donc la valeur du Duplicate_id de la table mantis_bug_table lorsque ces 2 types sont ajouté à la table mantis_bug_histoy_table

Voici le code du Trigger :

Code: Select all

USE mantis;

DELIMITER $$

DROP TRIGGER IF EXISTS mantis.DuplicateId$$

USE `mantis`$$

CREATE
DEFINER=`root`@`localhost`
TRIGGER `mantis`.`DuplicateId`
BEFORE INSERT ON `mantis`.`mantis_bug_history_table`

FOR EACH ROW
BEGIN
    DECLARE x INT;
    CASE NEW.type
        WHEN 20 THEN UPDATE `mantis_bug_table` SET duplicate_id = NEW.new_value WHERE id = NEW.bug_id;
        WHEN 21 THEN UPDATE `mantis_bug_table` SET duplicate_id = NEW.new_value WHERE id = NEW.bug_id;
        ELSE Set x = 0;
    END CASE;
END$$

DELIMITER ;
Maintenant ma prochaine étape sera d'afficher le Duplicate_id dans les pages view.php et bug_update.php.

Si ça peut servir à quelqu'un ...
Alain
Post Reply