diff options
author | Rafael de Camargo <rafaelcamargo@trt15.jus.br> | 2019-07-23 17:19:12 -0300 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2019-07-23 15:41:13 -0700 |
commit | 7283bfaef6aeeb62aed2478e201f28d7361633fd (patch) | |
tree | 4f5767e63c3a6724ae7b0d0c79c7a4b3768a17b9 | |
parent | e488fdd154cd6c7f03d969a43c1a987c5345101b (diff) |
Implements check for duplicate default categories
-rw-r--r-- | app/Model/CategoryModel.php | 14 | ||||
-rw-r--r-- | tests/units/Model/CategoryModelTest.php | 3 |
2 files changed, 7 insertions, 10 deletions
diff --git a/app/Model/CategoryModel.php b/app/Model/CategoryModel.php index 95e9e97e..441cc4a7 100644 --- a/app/Model/CategoryModel.php +++ b/app/Model/CategoryModel.php @@ -137,17 +137,13 @@ class CategoryModel extends Base public function createDefaultCategories($project_id) { $results = array(); - $categories = explode(',', $this->configModel->get('project_categories')); + $categories = array_unique(explode_csv_field($this->configModel->get('project_categories'))); foreach ($categories as $category) { - $category = trim($category); - - if (! empty($category)) { - $results[] = $this->db->table(self::TABLE)->insert(array( - 'project_id' => $project_id, - 'name' => $category, - )); - } + $results[] = $this->db->table(self::TABLE)->insert(array( + 'project_id' => $project_id, + 'name' => $category, + )); } return in_array(false, $results, true); diff --git a/tests/units/Model/CategoryModelTest.php b/tests/units/Model/CategoryModelTest.php index 6147b3a5..9916341b 100644 --- a/tests/units/Model/CategoryModelTest.php +++ b/tests/units/Model/CategoryModelTest.php @@ -156,7 +156,8 @@ class CategoryModelTest extends Base $categoryModel = new CategoryModel($this->container); $configModel = new ConfigModel($this->container); - $this->assertTrue($configModel->save(array('project_categories' => 'C1, C2, C3'))); + // Custom categories: spaces should be trimed, no empty and no duplicates + $this->assertTrue($configModel->save(array('project_categories' => 'C1, C2, C2 , C3, C1, '))); $this->assertEquals(1, $projectModel->create(array('name' => 'Project #1'))); $this->assertTrue($categoryModel->createDefaultCategories(1)); |