diff --git a/VERSIONS b/VERSIONS index d9f960bf44523a5439e3e3f4b685c9b1b46fa5b7..7d06069b3e1aaaceefea322628bca7c429bd8eb7 100644 --- a/VERSIONS +++ b/VERSIONS @@ -1,3 +1,10 @@ +28/01/2019 - v7.12.56 + + - ticket #85532 : Administration : Les tickets d'assistance au statut "Réaliser à tester" sont comptabilisés dans le menu haut "Assistance" + + - ticket #84896 : SIGB Nanook : activation de la réinitialisation des mots de passe par courriel + + 21/01/2019 - v7.12.55 - ticket #83545 : Administration, contrôle des URLS : corrections de la prise en charge des URLs contenant des caractères spéciaux 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/library/Class/WebService/SIGB/Nanook/Service.php b/library/Class/WebService/SIGB/Nanook/Service.php index ac30505db7302a232a9b25eebd8838e3c37b82e2..d474d356220777977b0b57bffb85c7b012e3ab32 100644 --- a/library/Class/WebService/SIGB/Nanook/Service.php +++ b/library/Class/WebService/SIGB/Nanook/Service.php @@ -125,6 +125,11 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac } + public function providesChangePasswordService() { + return true; + } + + public function saveEmprunteur($emprunteur) { $xml = $this->getWebClient() ->postData($this->buildQueryURL(['service'=>'UpdatePatronInfo', diff --git a/library/startup.php b/library/startup.php index 35110464758495911700a3b291974a491db76ce3..787c6bcaef9e3583e73372492aded2d656ab405a 100644 --- a/library/startup.php +++ b/library/startup.php @@ -81,7 +81,7 @@ class Bokeh_Engine { function setupConstants() { defineConstant('BOKEH_MAJOR_VERSION','7.12'); - defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.55'); + defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.56'); defineConstant('BOKEH_REMOTE_FILES', 'http://git.afi-sa.fr/afi/opacce/'); 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']]; } diff --git a/tests/library/Class/User/LostPassTest.php b/tests/library/Class/User/LostPassTest.php index 7844721e2458757f810826a709797e50f2f568fb..3d000ea4d701c14e4b53cbc7c69377e77412ca3c 100644 --- a/tests/library/Class/User/LostPassTest.php +++ b/tests/library/Class/User/LostPassTest.php @@ -92,6 +92,15 @@ class Class_User_LostPassSendTest extends ModelTestCase { } + /** @test */ + public function withNanookMailShouldContainsResetLink() { + $this->_sigb->setCommSigb(Class_IntBib::COM_NANOOK)->save(); + (new Class_User_LostPass($this->_user))->send(); + $mail = $this->_mail_transport->getSentMails()[0]->getBodyText()->getContent(); + $this->assertContains('/auth/reset-password', $mail); + } + + /** @test */ public function withPergameShouldNotsendMail() { $this->_sigb->setCommSigb(Class_IntBib::COM_PERGAME)->save();