diff --git a/VERSIONS_HOTLINE/157868 b/VERSIONS_HOTLINE/157868 new file mode 100644 index 0000000000000000000000000000000000000000..c5ff73557c092f234d4e706a102e1ed5c5b18735 --- /dev/null +++ b/VERSIONS_HOTLINE/157868 @@ -0,0 +1 @@ + - correctif #157868 : Facette dynamique sur domaine : correction de la requête de nettoyage des facettes dynamiques d'un domaine \ No newline at end of file diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php index 4227b9ed1c99c4ff01b4c623073465162d758e6c..9614400cdddf32545327d16626f28b97c49762c6 100644 --- a/library/Class/AdminVar.php +++ b/library/Class/AdminVar.php @@ -491,7 +491,7 @@ Pour vous désabonner de la lettre d\'information, merci de cliquer sur le lien 'OAI_ADMIN_EMAIL' => Class_AdminVar_Meta::newDefault($this->_('Contenu de la balise "adminEmail" dans la réponse au verb Identify, si vide sera tiré de la variable cosmogramme "mail_admin"')), 'CUSTOM_DOMAIN_FORM' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la personnalisation des formulaires des domaines')), 'ENABLE_DOMAINS_PER_LIBRARIES' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la répartition des domaines par bibliothèque dans l\'interface d\'administration')), - 'ENABLE_FACETS_ON_DOMAINS' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la constrution de facettes dynamiques sur les domaines')), + 'ENABLE_FACETS_ON_DOMAINS' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la construction de facettes dynamiques sur les domaines')), ]; } diff --git a/library/Class/CodifThesaurus.php b/library/Class/CodifThesaurus.php index e7b6b857ed3f709270009bc9bf7342a27a735de8..1365b7cade3e74bf9e9fad2f7ab90c28f63f385c 100644 --- a/library/Class/CodifThesaurus.php +++ b/library/Class/CodifThesaurus.php @@ -19,10 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ - - - - class Class_CodifThesaurus extends Storm_Model_Abstract { use Trait_Translator, Trait_MemoryCleaner, Trait_Facetable, Trait_TreeNode; diff --git a/library/Class/CodifThesaurus/Loader.php b/library/Class/CodifThesaurus/Loader.php index 758faf95c899ac75320c7b9beefb2de926cc204b..ded53c1985a2e82c33ff98ccff9ad207f9f56a90 100644 --- a/library/Class/CodifThesaurus/Loader.php +++ b/library/Class/CodifThesaurus/Loader.php @@ -291,7 +291,7 @@ class Class_CodifThesaurus_Loader extends Storm_Model_Loader { public function deleteFacetsInRecordsForThesaurusTree(Class_CodifThesaurus $thesaurus, string $where='') : int { - return $this->_deleteFacetsInRecordsByPattern(static::WORD_BOUNDARY . $thesaurus->getFacetCode() . '\\\\d*' . static::WORD_BOUNDARY, + return $this->_deleteFacetsInRecordsByPattern(static::WORD_BOUNDARY . $thesaurus->getFacetCode() . '[a-zA-Z0-9]*' . static::WORD_BOUNDARY, $where); } diff --git a/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php b/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php index a56f3753900ee8a5a9974b5c81d2df41eefb058e..f0169b730e2b712b344e269ac69089a12e3d1b41 100644 --- a/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php +++ b/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php @@ -37,8 +37,10 @@ class Class_Cosmogramme_Integration_PhaseDynamicFacetsOnDomainIndex protected function _execute() { - if (!Class_AdminVar::isModuleEnabled('ENABLE_FACETS_ON_DOMAINS')) + if (!Class_AdminVar::isModuleEnabled('ENABLE_FACETS_ON_DOMAINS')) { + $this->_log->info($this->_('Les facettes dynamiques sur les domaines ne sont pas activées')); return; + } array_map([$this, '_indexThesaurus'], Class_CodifThesaurus::findDomainFacets()); diff --git a/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php b/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php index c56a80bbea4a60f1f432c8e42a12c8385870b7ff..47e11603a2498443f3425be7876e68bac2441a6e 100644 --- a/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php +++ b/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php @@ -265,7 +265,7 @@ class CmsControllerCustomFieldsNotIndexableMetaPostEditActionTest }) ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))') ->answers(100) ->beStrict()); diff --git a/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php b/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php index 47cb4cbeafdcbbe3413a27543f0140aca2da6893..8e45bcfcefa4cdc2d9b795c04057c1cfb6408cb6 100644 --- a/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php +++ b/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php @@ -345,7 +345,7 @@ class CustomFieldsControllerPostAddActionTest extends AbstractControllerTestCase $this ->mock() ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))') ->answers(100) ->beStrict()); diff --git a/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php b/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php index 7f8cb8453697b837be355f9356758fdb41e6da4c..cf43fdffc05a494618f9f5f39aaa74e2386240f6 100644 --- a/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php +++ b/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php @@ -276,7 +276,7 @@ class CustomFieldsMetaControllerPostEditUnindexActionTest $this ->mock() ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0002\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0002[a-zA-Z0-9]*\\\\b", ""))') ->answers(100) ->beStrict()); diff --git a/tests/library/Class/CodifThesaurusTest.php b/tests/library/Class/CodifThesaurusTest.php index 371af6bcca669a93fbefb3b580578f32c887cee8..37666f10cc6108489950dc177942a8d1c0546de4 100644 --- a/tests/library/Class/CodifThesaurusTest.php +++ b/tests/library/Class/CodifThesaurusTest.php @@ -160,7 +160,7 @@ class CodifThesaurusDeleteTest extends ModelTestCase { Zend_Registry::set('sql', $sql); $sql ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))') ->willDo(function() { Class_Notice::find(12)->setFacettes('T8 A3452'); return 1; diff --git a/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php b/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php index af1d01578ed5abe6b1f8ab3528a98871b6b19822..6aaa46650e03a0be10be5a55022820b297d434cf 100644 --- a/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php +++ b/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php @@ -70,7 +70,7 @@ class PhaseDomainsCronTest extends PhaseDomainsTestCase { $sql = $this->mock() ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCCCC\\\\d*\\\\b", "")) where type_doc not in ("8", "9", "10") and type=1') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCCCC[a-zA-Z0-9]*\\\\b", "")) where type_doc not in ("8", "9", "10") and type=1') ->answers(12) ->whenCalled('query') diff --git a/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php b/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php index d1dc0f2e443b0f20741503cb6f9074d191a0eb13..4c7c3c697667d334031731766195466ac6c96e1e 100644 --- a/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php +++ b/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php @@ -38,7 +38,7 @@ class Class_Migration_CleanCustomFieldsFacetsTest extends ModelTestCase { $sql = $this->mock() ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))') ->answers(100) ->beStrict(); diff --git a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php index dbbb7b5ba23ad20b33c43719174ec81d5a96cd1e..7fa5c9ba3ad3319c01c497441b0589dcf7990377 100644 --- a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php +++ b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php @@ -394,7 +394,7 @@ class DynamicFacetOnDomainsAdminDeleteTest extends DynamicFacetOnDomainsAdminTes Zend_Registry::set('sql', $sql); $sql ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM[a-zA-Z0-9]*\\\\b", ""))') ->willDo(function() { Class_Notice::find(4)->setFacettes('T1 A2 M2'); return 1; diff --git a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php index fcf33b7fbdda67564dbbd181ba32b73a4299d35a..78481d3d53f7927c835ae6b763cae3e8a0f579eb 100644 --- a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php +++ b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php @@ -21,7 +21,8 @@ require_once(__DIR__ . '/DynamicFacetOnDomainsFixture.php'); -class DynamicFacetOnDomainsPhaseTest + +abstract class DynamicFacetOnDomainsPhaseTest extends Class_Cosmogramme_Integration_PhaseTestCase { protected function _getPreviousPhase() { @@ -29,9 +30,30 @@ class DynamicFacetOnDomainsPhaseTest } + public function setUp() { + parent::setUp(); + + $this->_phase = $this->_buildPhase('DynamicFacetsOnDomainIndex') + ->setMemoryCleaner(function() {}) + ->setPrinter($this->_printer) + ->run(); + } + + + /** @test */ + public function logShouldNotContainsError() { + $this->assertNotError(); + } +} + + + + +class DynamicFacetOnDomainsPhaseEnabledTest extends DynamicFacetOnDomainsPhaseTest { protected function _prepareFixtures() { parent::_prepareFixtures(); Class_AdminVar::set('ENABLE_FACETS_ON_DOMAINS', true); + (new DynamicFacetOnDomainsFixture) ->buildCodifications() ->buildDomains() @@ -57,76 +79,53 @@ class DynamicFacetOnDomainsPhaseTest }) ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM[a-zA-Z0-9]*\\\\b", ""))') ->willDo(function() { Class_Notice::find(3)->setFacettes('T1 A3'); return 1; }) ->whenCalled('query') - ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHSUPP\\\\d*\\\\b", ""))') + ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHSUPP[a-zA-Z0-9]*\\\\b", ""))') ->answers(0) ->beStrict(); } - public function setUp() { - parent::setUp(); - - $this->_phase = $this->_buildPhase('DynamicFacetsOnDomainIndex') - ->setMemoryCleaner(function() {}) - ->setPrinter($this->_printer) - ->run(); - } - - /** @test */ public function logShouldContainsIndexationDesFacettesSurDomaines() { - $this->assertContains('Indexation des facettes sur les domaines', - $this->_log_content); + $this->assertLogContains('Indexation des facettes sur les domaines'); } /** @test */ public function logShouldContainsTraitementThesaurusAnimaux() { - $this->assertContains('Traitement du thesaurus : Animaux', - $this->_log_content); + $this->assertLogContains('Traitement du thesaurus : Animaux'); } /** @test */ public function logShouldContainsIndexationDomaineAnimaux() { - $this->assertContains('Indexation des notices du domaine : De la ferme', - $this->_log_content); + $this->assertLogContains('Indexation des notices du domaine : De la ferme'); } /** @test */ public function logShouldContainsUneNoticeIndexée() { - $this->assertContains('1 notice(s) indexée(s)', - $this->_log_content); + $this->assertLogContains('1 notice(s) indexée(s)'); } - /** @test */ public function logShouldContainsTraitementDeleteFacetANIMinNotice() { - $this->assertContains('Suppression de la facette ANIM dans 1 notice(s)', - $this->_log_content); + $this->assertLogContains('Suppression de la facette ANIM dans 1 notice(s)'); } /** @test */ public function logShouldContainsTraitementDeleteFacetANIM0003() { - $this->assertContains('Suppression de la facette inutilisée : ANIM0003-Oiseaux', - $this->_log_content); - } - - - /** @test */ - public function logShouldNotContainsError() { - $this->assertNotContains('Erreur', $this->_log_content); + $this->assertLogContains('Suppression de la facette inutilisée : ANIM0003-Oiseaux'); } @@ -193,8 +192,13 @@ class DynamicFacetOnDomainsPhaseDisabledTest extends DynamicFacetOnDomainsPhaseT /** @test */ - public function logShouldNotContainsIndexationDeLaFacette() { - $this->assertNotContains('Indexation de la facette', - $this->_log_content); + public function logShouldContainsIndexationDesFacettesSurDomaines() { + $this->assertLogContains('Indexation des facettes sur les domaines'); + } + + + /** @test */ + public function logShouldContainsDynamicFacetOnDomainsDisabled() { + $this->assertLogContains('Les facettes dynamiques sur les domaines ne sont pas activées'); } }