From d2b2d4ae8f4aed7aca7cb46c3dfa8a56dd4ca476 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Mon, 9 Dec 2019 14:48:04 +0100
Subject: [PATCH] FEAT #12069 TIME 0:15 delete tag entities

---
 migration/19.12/1912.sql                  |  1 +
 sql/data_fr.sql                           | 15 ---------------
 sql/delete_all_ressources.sql             |  2 --
 sql/structure.sql                         | 10 ----------
 src/app/tag/controllers/TagController.php | 13 ++++++++-----
 src/app/tag/models/TagModel.php           | 13 -------------
 src/core/lang/lang-en.php                 |  1 +
 src/core/lang/lang-fr.php                 |  1 +
 src/core/lang/lang-nl.php                 |  1 +
 9 files changed, 12 insertions(+), 45 deletions(-)

diff --git a/migration/19.12/1912.sql b/migration/19.12/1912.sql
index 3cf7f532d39..f9305bdc508 100644
--- a/migration/19.12/1912.sql
+++ b/migration/19.12/1912.sql
@@ -234,6 +234,7 @@ DO $$ BEGIN
 END$$;
 SELECT setval('tags_id_seq', (SELECT MAX(id) from tags));
 
+DROP TABLE IF EXISTS tags_entities;
 
 /* DOCTYPES */
 DO $$ BEGIN
diff --git a/sql/data_fr.sql b/sql/data_fr.sql
index 54bce2a6aa3..a76836445aa 100755
--- a/sql/data_fr.sql
+++ b/sql/data_fr.sql
@@ -1215,21 +1215,6 @@ INSERT INTO tags (label, entity_id_owner) VALUES ('QUARTIERS', 'COU');
 INSERT INTO tags (label, entity_id_owner) VALUES ('LITTORAL', 'COU');
 INSERT INTO tags (label, entity_id_owner) VALUES ('SPORT', 'COU');
 
-TRUNCATE TABLE tags_entities;
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (1, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (2, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (3, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (4, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (5, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (6, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (7, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (8, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (9, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (10, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (11, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (12, 'COU');
-INSERT INTO tags_entities (tag_id, entity_id) VALUES (13, 'COU');
-
 ------------
 ------------
 --TEMPLATES
diff --git a/sql/delete_all_ressources.sql b/sql/delete_all_ressources.sql
index 1eb0abee27d..312dd7a812b 100755
--- a/sql/delete_all_ressources.sql
+++ b/sql/delete_all_ressources.sql
@@ -41,8 +41,6 @@ TRUNCATE TABLE lc_stack;
 TRUNCATE TABLE tags;
 ALTER SEQUENCE tags_id_seq restart WITH 1;
 
-TRUNCATE TABLE tags_entities;
-
 TRUNCATE TABLE tag_res;
 
 TRUNCATE TABLE emails;
diff --git a/sql/structure.sql b/sql/structure.sql
index 2dfb82baaa7..fd283503506 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -938,16 +938,6 @@ WITH (
   OIDS=FALSE
 );
 
-CREATE TABLE tags_entities
-(
-  tag_id bigint,
-  entity_id character varying(32),
-  CONSTRAINT tags_entities_pkey PRIMARY KEY (tag_id,entity_id)
-)
-WITH (
-  OIDS=FALSE
-);
-
 CREATE SEQUENCE res_id_mlb_seq
   INCREMENT 1
   MINVALUE 1
diff --git a/src/app/tag/controllers/TagController.php b/src/app/tag/controllers/TagController.php
index 7986809a600..cb730ce53b8 100644
--- a/src/app/tag/controllers/TagController.php
+++ b/src/app/tag/controllers/TagController.php
@@ -193,16 +193,19 @@ class TagController
            'data'   => [$tagMerge['id']]
         ]);
 
-        TagModel::deleteTagEntities([
-           'where'  => ['tag_id = ?'],
-           'data'   => [$tagMerge['id']]
-        ]);
-
         TagModel::delete([
             'where' => ['id = ?'],
             'data'  => [$tagMerge['id']]
         ]);
 
+        HistoryController::add([
+            'tableName' => 'tags',
+            'recordId'  => $tagMaster['id'],
+            'eventType' => 'DEL',
+            'info'      =>  _TAG_MERGED . " : {$tagMerge['label']} vers {$tagMaster['label']}",
+            'eventId'   => 'tagSuppression',
+        ]);
+
         return $response->withStatus(204);
     }
 }
diff --git a/src/app/tag/models/TagModel.php b/src/app/tag/models/TagModel.php
index 5f2dd84f26e..c09d73a087e 100644
--- a/src/app/tag/models/TagModel.php
+++ b/src/app/tag/models/TagModel.php
@@ -103,17 +103,4 @@ class TagModel
         return true;
     }
 
-    public static function deleteTagEntities(array $args)
-    {
-        ValidatorModel::notEmpty($args, ['where', 'data']);
-        ValidatorModel::arrayType($args, ['where', 'data']);
-
-        DatabaseModel::delete([
-            'table' => 'tags_entities',
-            'where' => $args['where'],
-            'data'  => $args['data']
-        ]);
-
-        return true;
-    }
 }
diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php
index cb8e55579a5..f220d3e5429 100755
--- a/src/core/lang/lang-en.php
+++ b/src/core/lang/lang-en.php
@@ -151,6 +151,7 @@ define('_NOTE_DELETED', 'Note deleted');
 define('_TAG_ADDED', 'Tag added');
 define('_TAG_DELETED', 'Tag deleted');
 define('_TAG_UPDATED', 'Tag updated');
+define('_TAG_MERGED', 'Tag merged');
 
 // LISTS
 define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'List with filters and responses');
diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php
index 8a9e4d4bac7..9075ca02df9 100755
--- a/src/core/lang/lang-fr.php
+++ b/src/core/lang/lang-fr.php
@@ -151,6 +151,7 @@ define('_NOTE_DELETED', 'Annotation supprimée');
 define('_TAG_ADDED', 'Mot-clé ajouté');
 define('_TAG_DELETED', 'Mot-clé supprimé');
 define('_TAG_UPDATED', 'Mot-clé modifié');
+define('_TAG_MERGED', 'Mot-clé fusionné');
 
 // LISTS
 define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'Liste avec filtres et réponses');
diff --git a/src/core/lang/lang-nl.php b/src/core/lang/lang-nl.php
index 3bc0af25dfe..2f82be8cb94 100755
--- a/src/core/lang/lang-nl.php
+++ b/src/core/lang/lang-nl.php
@@ -151,6 +151,7 @@ define('_NOTE_DELETED', 'Note deleted');//TRANSLATE
 define('_TAG_ADDED', 'Tag added'); //TRANSLATE
 define('_TAG_DELETED', 'Tag deleted'); //TRANSLATE
 define('_TAG_UPDATED', 'Tag updated'); //TRANSLATE
+define('_TAG_MERGED', 'Tag merged'); //TRANSLATE
 
 // LISTS
 define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'Lijst met filters en antwoorden');
-- 
GitLab