From b5f4b26cd02cee1120511dc40c40a32ee8cf9ea5 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Fri, 15 Feb 2019 16:47:54 +0100 Subject: [PATCH] FEAT #9104 Export departments + fix user tests --- .../controllers/DepartmentController.php | 137 ++++++++++++++++++ .../resource/controllers/ExportController.php | 6 + .../app/list/export/export.component.ts | 10 +- .../unitTests/app/user/UserControllerTest.php | 81 +---------- 4 files changed, 151 insertions(+), 83 deletions(-) create mode 100644 src/app/resource/controllers/DepartmentController.php diff --git a/src/app/resource/controllers/DepartmentController.php b/src/app/resource/controllers/DepartmentController.php new file mode 100644 index 00000000000..b1f67f1fa57 --- /dev/null +++ b/src/app/resource/controllers/DepartmentController.php @@ -0,0 +1,137 @@ +<?php + +/** +* Copyright Maarch since 2008 under licence GPLv3. +* See LICENCE.txt file at the root folder for more details. +* This file is part of Maarch software. +* +*/ + +/** +* @brief Department Controller +* @author dev@maarch.org +*/ + +namespace Resource\controllers; + + +use SrcCore\models\ValidatorModel; + +class DepartmentController +{ + const FRENCH_DEPARTMENTS = [ + "01" => "Ain", + "02" => "Aisne", + "03" => "Allier", + "04" => "Alpes de Haute Provence", + "05" => "Hautes Alpes", + "06" => "Alpes Maritimes", + "07" => "Ardèche", + "08" => "Ardennes", + "09" => "Ariège", + "10" => "Aube", + "11" => "Aude", + "12" => "Aveyron", + "13" => "Bouches du Rhône", + "14" => "Calvados", + "15" => "Cantal", + "16" => "Charente", + "17" => "Charente Maritime", + "18" => "Cher", + "19" => "Corrèze", + "2A" => "Corse du Sud", + "2B" => "Haute Corse", + "21" => "Côte d'Or", + "22" => "Côtes d'Armor", + "23" => "Creuse", + "24" => "Dordogne", + "25" => "Doubs", + "26" => "Drôme", + "27" => "Eure", + "28" => "Eure et Loir", + "29" => "Finistère", + "30" => "Gard", + "31" => "Haute Garonne", + "32" => "Gers", + "33" => "Gironde", + "34" => "Hérault", + "35" => "Ille et Vilaine", + "36" => "Indre", + "37" => "Indre et Loire", + "38" => "Isère", + "39" => "Jura", + "40" => "Landes", + "41" => "Loir et Cher", + "42" => "Loire", + "43" => "Haute Loire", + "44" => "Loire Atlantique", + "45" => "Loiret", + "46" => "Lot", + "47" => "Lot et Garonne", + "48" => "Lozère", + "49" => "Maine et Loire", + "50" => "Manche", + "51" => "Marne", + "52" => "Haute Marne", + "53" => "Mayenne", + "54" => "Meurthe et Moselle", + "55" => "Meuse", + "56" => "Morbihan", + "57" => "Moselle", + "58" => "Nièvre", + "59" => "Nord", + "60" => "Oise", + "61" => "Orne", + "62" => "Pas de Calais", + "63" => "Puy de Dôme", + "64" => "Pyrénées Atlantiques", + "65" => "Hautes Pyrénées", + "66" => "Pyrénées Orientales", + "67" => "Bas Rhin", + "68" => "Haut Rhin", + "69" => "Rhône", + "70" => "Haute Saône", + "71" => "Saône et Loire", + "72" => "Sarthe", + "73" => "Savoie", + "74" => "Haute Savoie", + "75" => "Paris", + "76" => "Seine Maritime", + "77" => "Seine et Marne", + "78" => "Yvelines", + "79" => "Deux Sèvres", + "80" => "Somme", + "81" => "Tarn", + "82" => "Tarn et Garonne", + "83" => "Var", + "84" => "Vaucluse", + "85" => "Vendée", + "86" => "Vienne", + "87" => "Haute Vienne", + "88" => "Vosges", + "89" => "Yonne", + "90" => "Territoire de Belfort", + "91" => "Essonne", + "92" => "Hauts de Seine", + "93" => "Seine St Denis", + "94" => "Val de Marne", + "95" => "Val d'Oise", + "971" => "Guadeloupe", + "972" => "Martinique", + "973" => "Guyane", + "974" => "La Réunion", + "976" => "Mayotte" + ]; + + public static function getById(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['id']); + ValidatorModel::intVal($aArgs, ['id']); + + if (empty(self::FRENCH_DEPARTMENTS[$aArgs['id']])) { + return ''; + } + + return self::FRENCH_DEPARTMENTS[$aArgs['id']]; + } +} diff --git a/src/app/resource/controllers/ExportController.php b/src/app/resource/controllers/ExportController.php index cb79443789c..7ad6bb54e3c 100644 --- a/src/app/resource/controllers/ExportController.php +++ b/src/app/resource/controllers/ExportController.php @@ -167,6 +167,8 @@ class ExportController $select[] = 'res_view_letterbox.typist'; } elseif ($value['value'] == 'getAssignee') { $select[] = 'res_view_letterbox.dest_user'; + } elseif ($value['value'] == 'getDepartment') { + $select[] = 'res_view_letterbox.department_number_id'; } } else { $select[] = "res_view_letterbox.{$value['value']}"; @@ -261,6 +263,8 @@ class ExportController $csvContent[] = ExportController::getSignatories(['resId' => $resource['res_id']]); } elseif ($value['value'] == 'getSignatureDates') { $csvContent[] = ExportController::getSignatureDates(['resId' => $resource['res_id']]); + } elseif ($value['value'] == 'getDepartment') { + $content[] = DepartmentController::getById(['id' => $resource['department_number_id']]); } } else { $allDates = ['doc_date', 'departure_date', 'admission_date', 'process_limit_date', 'opinion_limit_date', 'closing_date', 'sve_start_date']; @@ -357,6 +361,8 @@ class ExportController $content[] = ExportController::getSignatories(['resId' => $resource['res_id']]); } elseif ($value['value'] == 'getSignatureDates') { $content[] = ExportController::getSignatureDates(['resId' => $resource['res_id']]); + } elseif ($value['value'] == 'getDepartment') { + $content[] = DepartmentController::getById(['id' => $resource['department_number_id']]); } } else { $allDates = ['doc_date', 'departure_date', 'admission_date', 'process_limit_date', 'opinion_limit_date', 'closing_date', 'sve_start_date']; diff --git a/src/frontend/app/list/export/export.component.ts b/src/frontend/app/list/export/export.component.ts index 64d4f656c6e..7bf46ba869a 100644 --- a/src/frontend/app/list/export/export.component.ts +++ b/src/frontend/app/list/export/export.component.ts @@ -71,11 +71,6 @@ export class ExportComponent implements OnInit { label: this.lang.departureDate, isFunction: false }, - { - value: 'department_number_id', - label: this.lang.department, - isFunction: false - }, { value: 'barcode', label: this.lang.barcode, @@ -221,6 +216,11 @@ export class ExportComponent implements OnInit { label: this.lang.signatureDate, isFunction: true }, + { + value: 'getDepartment', + label: this.lang.department, + isFunction: true + }, { value: '', label: this.lang.comment, diff --git a/test/unitTests/app/user/UserControllerTest.php b/test/unitTests/app/user/UserControllerTest.php index dc102e310c7..28b9f1d3fe7 100755 --- a/test/unitTests/app/user/UserControllerTest.php +++ b/test/unitTests/app/user/UserControllerTest.php @@ -85,16 +85,13 @@ class UserControllerTest extends TestCase 'lastname' => 'TEST-KENT2', 'mail' => 'ck@dailyP.com', 'phone' => '0122334455', - 'initials' => 'CK', - 'enabled' => 'N', + 'initials' => 'CK' ]; $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); $response = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame('success', $responseBody->success); - // READ $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); @@ -106,7 +103,6 @@ class UserControllerTest extends TestCase $this->assertSame('TEST-CLARK2', $responseBody->firstname); $this->assertSame('TEST-KENT2', $responseBody->lastname); $this->assertSame('OK', $responseBody->status); - $this->assertSame('N', $responseBody->enabled); $this->assertSame('0122334455', $responseBody->phone); $this->assertSame('ck@dailyP.com', $responseBody->mail); $this->assertSame('CK', $responseBody->initials); @@ -410,7 +406,7 @@ class UserControllerTest extends TestCase // READ in case of deactivated user_quota $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); - $response = $userController->get($request, new \Slim\Http\Response(), ['id' => self::$id]); + $response = $userController->get($request, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); $this->assertNotNull($responseBody->users); @@ -430,7 +426,7 @@ class UserControllerTest extends TestCase // READ in case of enabled user_quotat $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); - $response = $userController->get($request, new \Slim\Http\Response(), ['id' => self::$id]); + $response = $userController->get($request, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); $this->assertNotNull($responseBody->users); @@ -438,75 +434,7 @@ class UserControllerTest extends TestCase $this->assertSame(20, $responseBody->quota->userQuota); $this->assertNotNull($responseBody->quota->actives); $this->assertInternalType('int', $responseBody->quota->inactives); - } - - public function testUserQuota() - { - $userController = new \User\controllers\UserController(); - $parameterController = new \Parameter\controllers\ParameterController(); - - // CREATE - $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']); - $request = \Slim\Http\Request::createFromEnvironment($environment); - - $aArgs = [ - 'userId' => 'test-ckentquota', - 'firstname' => 'TEST-CLARKquota', - 'lastname' => 'TEST-KENTquota' - ]; - $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); - - $response = $userController->create($fullRequest, new \Slim\Http\Response()); - $responseBody = json_decode((string)$response->getBody()); - $userId = $responseBody->user->id; - - $this->assertInternalType('int', $userId); - - // UPDATE - $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); - $request = \Slim\Http\Request::createFromEnvironment($environment); - $aArgs = [ - 'user_id' => 'test-ckentquota', - 'firstname' => 'TEST-CLARKquota2', - 'lastname' => 'TEST-KENTquota2', - 'mail' => 'ck@dailyP.com', - 'phone' => '0122334455', - 'initials' => 'CK', - 'enabled' => 'N', - ]; - $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); - - $response = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' =>$userId]); - $responseBody = json_decode((string)$response->getBody()); - - $this->assertSame('success', $responseBody->success); - - // UPDATE disabled user for user_quota (avoid notification sending) - $aArgs = [ - 'user_id' => 'test-ckentquota', - 'firstname' => 'TEST-CLARKquota2', - 'lastname' => 'TEST-KENTquota2', - 'mail' => 'ck@dailyP.com', - 'phone' => '0122334455', - 'initials' => 'CK', - 'enabled' => 'Y', - ]; - $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); - - $response = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' =>$userId]); - $responseBody = json_decode((string)$response->getBody()); - - $this->assertSame('success', $responseBody->success); - // DELETE - // REAL DELETE - \SrcCore\models\DatabaseModel::delete([ - 'table' => 'users', - 'where' => ['id = ?'], - 'data' => [$userId] - ]); - - // UPDATE $aArgs = [ 'description' => 'User quota', 'param_value_int' => 0 @@ -627,8 +555,6 @@ class UserControllerTest extends TestCase $response = $userController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame('success', $responseBody->success); - // READ $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); @@ -640,7 +566,6 @@ class UserControllerTest extends TestCase $this->assertSame('TEST-CLARK2', $responseBody->firstname); $this->assertSame('TEST-KENT2', $responseBody->lastname); $this->assertSame('DEL', $responseBody->status); - $this->assertSame('N', $responseBody->enabled); $this->assertSame('0122334455', $responseBody->phone); $this->assertSame('ck@dailyP.com', $responseBody->mail); $this->assertSame('CK', $responseBody->initials); -- GitLab