diff --git a/VERSIONS_HOTLINE/85532 b/VERSIONS_HOTLINE/85532 new file mode 100644 index 0000000000000000000000000000000000000000..489f7d2b24ec263d88637a0513e447f626a64cd6 --- /dev/null +++ b/VERSIONS_HOTLINE/85532 @@ -0,0 +1 @@ + - ticket #85532 : Administration : Les tickets d'assistance au statut "Réaliser à tester" sont comptabilisés dans le menu haut "Assistance" \ No newline at end of file diff --git a/library/Class/WebService/Redmine/Workflow/Afibre.php b/library/Class/WebService/Redmine/Workflow/Afibre.php index b298a4442ee2e14e01dfdc7a2d3b774a85029e76..f739596668a0ca38257911b6ce2e44bf4ddc9753 100644 --- a/library/Class/WebService/Redmine/Workflow/Afibre.php +++ b/library/Class/WebService/Redmine/Workflow/Afibre.php @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -class Class_WebService_Redmine_Workflow_Afibre extends Class_WebService_Redmine_Workflow_Abstract { +class Class_WebService_Redmine_Workflow_Afibre extends Class_WebService_Redmine_Workflow_Abstract { const A_QUALIFIER = 1, AFFECTE_HEBERGEMENT = 13, @@ -34,24 +34,31 @@ class Class_WebService_Redmine_Workflow_Afibre extends Class_WebService_Redmine A_INTEGRER = 17, RETOUR_DEV = 22; - protected $_transitions = [self::A_QUALIFIER => [self::FERME], - 14 => [self::A_QUALIFIER], - 15 => [], - self::AFFECTE_HOTLINE => [self::AFFECTE_DEV, self::FERME], - self::AFFECTE_SYSTEME => [], - self::AFFECTE_DEV => [self::A_QUALIFIER, self::FERME], - self::AFFECTE_HEBERGEMENT => [], - self::RETOUR_DEV => [], - self::EN_DEVELOPPEMENT => [self::FERME], - 18 => [], - 16 => [], - self::A_TESTER => [self::FERME], - self::A_INTEGRER => [], - self::QUESTION_CLIENT => [self::AFFECTE_HOTLINE, self::FERME], - 8 => [self::FERME], - self::TRANSFERT_DEV => [], - self::FERME => [self::A_QUALIFIER], - 6 => [self::A_QUALIFIER, self::FERME]]; + /** @var array of [ from_status => [to_status, to_status...]] */ + protected $_transitions = []; + + + public function __construct() { + $this->_transitions = [static::A_QUALIFIER => [static::FERME], + 14 => [static::A_QUALIFIER], + 15 => [], + static::AFFECTE_HOTLINE => [static::AFFECTE_DEV, static::FERME], + static::AFFECTE_SYSTEME => [], + static::AFFECTE_DEV => [static::A_QUALIFIER, static::FERME], + static::AFFECTE_HEBERGEMENT => [], + static::RETOUR_DEV => [], + static::EN_DEVELOPPEMENT => [static::FERME], + 18 => [], + 16 => [], + static::A_TESTER => [static::FERME], + static::A_INTEGRER => [], + static::QUESTION_CLIENT => [static::AFFECTE_HOTLINE, static::FERME], + 8 => [static::FERME], + static::TRANSFERT_DEV => [], + static::FERME => [static::A_QUALIFIER], + 6 => [static::A_QUALIFIER, static::FERME]]; + } + public function getTransitions() { return $this->_transitions; @@ -59,7 +66,7 @@ class Class_WebService_Redmine_Workflow_Afibre extends Class_WebService_Redmine public function getFormSelectedStatusIdForCurrent($status_id) { - return $status_id == self::QUESTION_CLIENT ? self::AFFECTE_HOTLINE : $status_id; + return $status_id == static::QUESTION_CLIENT ? static::AFFECTE_HOTLINE : $status_id; } @@ -68,8 +75,9 @@ class Class_WebService_Redmine_Workflow_Afibre extends Class_WebService_Redmine return count($issues ->select(function($issue) - { - return $issue->getStatusId() == self::QUESTION_CLIENT; - })); + { + return in_array($issue->getStatusId(), [static::QUESTION_CLIENT, + static::A_TESTER]); + })); } } \ No newline at end of file diff --git a/tests/application/modules/admin/controllers/RedmineControllerTest.php b/tests/application/modules/admin/controllers/RedmineControllerTest.php index 8fc8aab752b9f33ce46d06d934da9cbcde9c5f9c..7ede71a553c9743788ddf45c1c206a1c0194e803 100644 --- a/tests/application/modules/admin/controllers/RedmineControllerTest.php +++ b/tests/application/modules/admin/controllers/RedmineControllerTest.php @@ -305,8 +305,8 @@ class Admin_RedmineControllerIndexTest extends Admin_RedmineControllerWithApiTes /** @test */ - public function menuHorizontalShouldContainsOneIssueQuestionClient() { - $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[@title="Assistance"]//span[@class="menu_info"]', '1', $this->_response->getBody()); + public function menuHorizontalShouldContainsTwoIssues() { + $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[@title="Assistance"]//span[@class="menu_info"]', '2', $this->_response->getBody()); } } @@ -331,7 +331,7 @@ class Admin_RedmineControllerCacheTest extends Admin_RedmineControllerWithApiTes public function onAdminIndexMenuHorizontalShouldGetResultFromCache() { $this->dispatch('/admin/index/index'); - $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[@title="Assistance"]//span[@class="menu_info"]', '1'); + $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[@title="Assistance"]//span[@class="menu_info"]', '2'); } diff --git a/tests/fixtures/RedmineFixtures.php b/tests/fixtures/RedmineFixtures.php index 5bab9f300c192019c13ba59da5569c81b8682bd0..4aac063424b4e3c9167b4b75ad4a0f4e9db3b9cf 100644 --- a/tests/fixtures/RedmineFixtures.php +++ b/tests/fixtures/RedmineFixtures.php @@ -87,7 +87,8 @@ class RedmineFixtures { 'story_points' => ''], static::issue34247(), - static::issue34248()], + static::issue34248(), + static::issue34249()], 'total_count' => 2, 'offset' => 0 , 'limit' => 25]; @@ -158,6 +159,38 @@ class RedmineFixtures { } + public static function issue34249() { + return ['id' => 34249, + 'project' => ['id' => 56, + 'name' => 'Développement Bokeh AFI-OPAC 2.0'], + 'tracker' => ['id' => 2, + 'name' => 'Développement'], + 'status' => ['id' => 3, + 'name' => 'Réaliser à tester'], + 'priority' => ['id' => 4, + 'name' => 'Normal'], + 'author' => ['id' => 207, + 'name' => 'gloas'], + 'assigned_to' => ['id' => 207, + 'name' => 'gloas'], + 'subject' => 'Un problème à tester', + 'description' => 'important', + 'done_ratio' => 80, + 'custom_fields' => [ ['id' => 37, + 'name' => 'Module Portail', + 'value' => ''], + ['id' => 5 , + 'name' => 'Priorité client', + 'value' => 'Normale'], + ['id' => 11, + 'name' => 'Phase', + 'value' => '']], + 'created_on' => '2015-12-04T09:19:11Z', + 'updated_on' => '2015-12-04T09:25:42Z', + 'story_points' => '']; + } + + public static function projectHotline() { return ['project' => ['name' => 'Hotline']]; }