diff --git a/VERSIONS_WIP/102397 b/VERSIONS_WIP/102397 new file mode 100644 index 0000000000000000000000000000000000000000..a2d29c45c32097c2f6c4bfd5f11d90bb925de20d --- /dev/null +++ b/VERSIONS_WIP/102397 @@ -0,0 +1 @@ + - ticket #102397 : Le nombre d'entrées pour les facettes dynamiques peut maintenant aller jusqu'à 1 679 615 (au lieu de 9 999 auparavant). \ No newline at end of file diff --git a/library/Class/CodifThesaurus.php b/library/Class/CodifThesaurus.php index 9488d3245abeb91ce85582b3db5fa9430c8234f5..6e1d9b36c6a6e410f7d2e6673f9c720fab685111 100644 --- a/library/Class/CodifThesaurus.php +++ b/library/Class/CodifThesaurus.php @@ -243,9 +243,10 @@ class CodifThesaurusLoader extends Storm_Model_Loader { public function incrementId($id) { - $last=substr($id,strlen($id)-4); + $last=base_convert(substr($id,strlen($id)-4), 36, 10); $first_part=substr($id,0,strlen($id)-4); $last++; + $last = strtoupper(base_convert($last, 10, 36)); return $first_part.$this->getCodeSur4Chiffres($last,true); } @@ -731,7 +732,7 @@ class Class_CodifThesaurus extends Storm_Model_Abstract { $this->checkAttribute('id_thesaurus', $my_key != $empty_key, $this->_('Nombre maximum d\'élément à ce niveau déjà atteint (%s)', - str_repeat('9', self::ID_KEY_LENGTH))); + str_repeat('Z', self::ID_KEY_LENGTH))); } diff --git a/tests/library/Class/CodifThesaurusTest.php b/tests/library/Class/CodifThesaurusTest.php index 9cb92269d4caab0e0faf85b031e9814596326c6d..8957f4d7e1d614747fdb26c063f3228ceaf82e35 100644 --- a/tests/library/Class/CodifThesaurusTest.php +++ b/tests/library/Class/CodifThesaurusTest.php @@ -58,14 +58,20 @@ class CodifThesaurusCommonTest extends ModelTestCase { /** @test */ - public function incrementYYYY0001ShouldReturnYYYY0002() { - $this->assertEquals('YYYY1000', Class_CodifThesaurus::incrementId('YYYY0999')); + public function incrementYYYY0999ShouldReturnYYYY099A() { + $this->assertEquals('YYYY099A', Class_CodifThesaurus::incrementId('YYYY0999')); } /** @test */ public function incrementYYYY00ZZShouldReturnYYYY0100() { - $this->assertEquals('YYYY01AA', Class_CodifThesaurus::incrementId('YYYY00ZZ')); + $this->assertEquals('YYYY0100', Class_CodifThesaurus::incrementId('YYYY00ZZ')); + } + + + /** @test */ + public function incrementYYYY0009ShouldReturnYYYY000A() { + $this->assertEquals('YYYY000A', Class_CodifThesaurus::incrementId('YYYY0009')); } @@ -203,7 +209,7 @@ class CodifThesaurusTooManyValuesTest extends ModelTestCase { 'rules' => null]); $this->fixture('Class_CodifThesaurus', - ['id_thesaurus' => 'TEST9999', + ['id_thesaurus' => 'TESTZZZZ', 'id_origine' => 'RIME', 'libelle' => 'rime', 'code' => 'TEST', @@ -215,7 +221,7 @@ class CodifThesaurusTooManyValuesTest extends ModelTestCase { /** @test */ - public function shouldNotInsertMoreThan9999Child() { + public function shouldNotInsertMoreThanZZZZChild() { Class_CodifThesaurus::find(723) ->getOrCreateChild(strtoupper('métiers de la recherche'), 'métiers de la recherche');