diff --git a/VERSIONS_HOTLINE/94750 b/VERSIONS_HOTLINE/94750 new file mode 100644 index 0000000000000000000000000000000000000000..529a4eab3c75731ccc548bf66440b37b02ef1a23 --- /dev/null +++ b/VERSIONS_HOTLINE/94750 @@ -0,0 +1 @@ + - ticket #94750 : Facettes dynamiques : correction de la mise à jour des libellés \ No newline at end of file diff --git a/cosmogramme/tests/php/classes/NanookRecordsIntegrationTest.php b/cosmogramme/tests/php/classes/NanookRecordsIntegrationTest.php index e01efcc4068a5b93acc4eca3442ab562504288ee..018efa8ca9031abc42aad52d4f773e4ed3262d2a 100644 --- a/cosmogramme/tests/php/classes/NanookRecordsIntegrationTest.php +++ b/cosmogramme/tests/php/classes/NanookRecordsIntegrationTest.php @@ -591,6 +591,7 @@ class NanookRecordsIntegrationMultiClassificationTest extends NanookRecordsInteg + /** @see http://forge.afi-sa.fr/issues/94786 */ class NanookRecordsIntegrationExistingRecordWithRemovedClasstificationTest extends NanookRecordsIntegrationTestCase { @@ -727,4 +728,48 @@ class NanookRecordsIntegrationExistingRecordWithRemovedClasstificationTest $this->assertNotContains('HNIVE0003', $this->_facets, json_encode($this->_facets, JSON_PRETTY_PRINT)); } +} + + + + +class NanookRecordsIntegrationModifLabelOnDynamicFacetTest extends NanookRecordsIntegrationTestCase { + public function setUp() { + parent::setUp(); + + $this->fixture('Class_CodifThesaurus', + ['id' => 1, + 'libelle' => 'Niveau de lecture', + 'libelle_facette' => 'Niveau de lecture', + 'id_thesaurus' => 'NIVE', + 'id_origine' => '', + 'code' => 'NIVE', + 'rule_zone' => '993', + 'rule_label_field' => 'a', + 'rule_id_field' => '4' + ]); + + $this->fixture('Class_CodifThesaurus', + ['id' => 2, + 'libelle' => 'wrong', + 'libelle_facette' => 'wrong', + 'id_thesaurus' => 'NIVE0001', + 'id_origine' => 1, + 'code' => 'NIVE', + ]); + + $this->loadRecordsFromFile("unimarc_coq"); + } + + + /** @test */ + public function firstRecordFacetsShouldContainsHNIVE0001() { + $this->assertEquals('T3 HNIVE0001 A1', Class_Notice::find(1)->getFacettes()); + } + + + /** @test */ + public function codifThesaurusShouldHaveLibelle0_4ans() { + $this->assertEquals('0-4 ans' , Class_CodifThesaurus::find(2)->getLibelle()); + } } \ No newline at end of file diff --git a/cosmogramme/tests/php/classes/unimarc_coq.txt b/cosmogramme/tests/php/classes/unimarc_coq.txt new file mode 100644 index 0000000000000000000000000000000000000000..fb4d7f0e39ea614fb5400bc6752c915d5e80d959 --- /dev/null +++ b/cosmogramme/tests/php/classes/unimarc_coq.txt @@ -0,0 +1 @@ +03285njm0 2200541 450 001000700000010001200007071002200019073001800041100001300059200004200072210002000114215003100134300001600165330137700181345001801558349002901576464003501605464003301640464003701673464003601710464003701746464003701783464004601820464004001866464002701906464003401933464004001967464002802007464003002035464005002065464003302115464003402148464003302182606002102215606001902236606001302255606002102268606001002289610001302299686003602312700002002348700002402368801001202392902000902404992016402413993001502577995015102592274318 d20,36 E01bArb Musica486130 a3760124861303 a201906201 aMaroceComptines, danses et berceuses 1cARB Musicd2018 1a1 disque compacte1 livret aDès 3 mois aL'album "Maroc, comptines, danses et berceuses", allie l'agilité du phrasé chanté de Halima et l'intensité chaleureuse de Zakariae, véritable homme-orchestre Halima et Zachariae ont spontanément puisé, dans leurs souvenirs d'enfance, les comptines populaires qui racontent en arabe et en français, des histoires qui se transmettent, de génération en génération, Le cheval d'Ali, Le porteur d'eau, La maison du sultan. Ils ont aussi choisi des mélodies à la douceur enchantée du luth et des chansons dont les rythmes pétillants font entrer spontanément les tout-petits dans la danse orientale Halima Hamdane, conteuse d'origine marocaine, anime l'Arbre à palabres au Musée du Quai Branly et travaille dans le cadre d'un programme d'alphabétisation pour l'apprentissage de la langue française à partir du conte et des comptines Zakariae Heddouchi chanteur et musicien multi-instrumentiste, guitare, guenbri, percussions, accompagne Halima Hamdane sur scène. Il est aussi compositeur de musiques et de chansons pour des spectacles jeune public"Les aventures de Charlie et Zoé : mission planète" Sofiane Negra, luthiste, accompagne Halima Hamdane. Diplômé d'un DEA de musicologie de la Sorbonne, il est membre de l'orchestre de la Rachidiyya de Tunis en tant que soliste et participe, avec cet ensemble, à plusieurs festivals à travers le monde. b3760124861303 bArb Musicc3760124861303 tFarasso Ali - Le cheval d'Ali tAmchichti - Ma petite chatte tWahed zouj tlata - Un deux trois tJrada malha - Sauterelle salée tAchmicha lalla - Mon beau soleil tDar Sultan - La maison du Sultan tWahed el roseya - La biche : instrumental tArsoumou mama - Je dessine ma maman tMawlana : instrumental tDiki ya diki - Coq ô mon coq tAna zahro - La primevère : poésie tQum tara : instrumental tGaraab - Le porteur d'eau tGhzeyel meyel - Petite gazelle : instrumental tMini ya moumou - Dodo bébé tYa tayre - L'oiseau : poésie tMoumou - Dodo : instrumental achanson : enfant adanse : enfant aberceuse aMaroc : comptine aMaroc aComptine a710tChansons et rondes2Cestas 1aHamdanebHalima 1aHeddouchibZakariae 1aFRbCVS a7101 uhttps://websvc.afi-sa.net/afi_opac_services/images/jaquettes/thumbs/8782508.jpegvhttps://websvc.afi-sa.net/afi_opac_services/images/jaquettes/big/8782508.jpeg 41a0-4 ans aMédiathèque de Cestasf351365212k710 HAM VIOLETm20190911qdrjev02[EQU][À équiper][0][0][bientôt disponible][0][0][0][0]506467328191 \ No newline at end of file diff --git a/library/Class/CodifThesaurus.php b/library/Class/CodifThesaurus.php index 5ae11f6b3c912e06d44b07719005f15ac6dba0b2..9488d3245abeb91ce85582b3db5fa9430c8234f5 100644 --- a/library/Class/CodifThesaurus.php +++ b/library/Class/CodifThesaurus.php @@ -669,13 +669,14 @@ class Class_CodifThesaurus extends Storm_Model_Abstract { public function getOrCreateChild($id_origine, $label) { - if ($entry = $this->getChild($id_origine)) + if (!$entry = $this->getChild($id_origine)) + $entry = $this->newChildEntry(); + + if ($label == $entry->getLibelle()) return $entry; - $entry = $this - ->newChildEntry() - ->updateAttributes(['id_origine' => $id_origine, - 'libelle' => $label]); + $entry ->updateAttributes(['id_origine' => $id_origine, + 'libelle' => $label]); return $entry->save() ? $entry : null; }