diff --git a/application/modules/admin/controllers/AlbumController.php b/application/modules/admin/controllers/AlbumController.php index ed210ab9c5f55344aea7fae3d87f5e26e42ad20a..97b5384f8115ade64ffdb0b7937a355a6ccfc1a8 100644 --- a/application/modules/admin/controllers/AlbumController.php +++ b/application/modules/admin/controllers/AlbumController.php @@ -314,8 +314,13 @@ class Admin_AlbumController extends ZendAfi_Controller_Action { ) return false; - $model->updateAttributes($form->getValues()); - + $model->updateAttributes($this->_request->getPost()); + $model->setAuthors($form->authors->getValue()); + if (!$model->isValid()) { + $form->addModelErrors($model); + return false; + } + return $model->save() && $model->receiveFiles() && $model->getAlbum()->save() diff --git a/library/Class/Indexation/PseudoNotice.php b/library/Class/Indexation/PseudoNotice.php index e8e01b5bc2b3fa144ca0bc00633bbc077fcd2d68..f962ab5797021dcc35124526a5583903dbb89be2 100644 --- a/library/Class/Indexation/PseudoNotice.php +++ b/library/Class/Indexation/PseudoNotice.php @@ -154,7 +154,7 @@ class Class_Indexation_PseudoNotice { $this->_datas["auteur"], ''); - $data["titres"] = $this->_indexation->getfullText($this->_datas["titre"]); + $data["titres"] = $this->_indexation->getfullText($this->extractTitles()); $data["auteurs"] = $this->_indexation->getfullText($authors); $data["alpha_auteur"] = $this->_indexation->alphaMaj(implode(' ', $authors)); @@ -206,6 +206,11 @@ class Class_Indexation_PseudoNotice { } + protected function extractTitles() { + return $this->_datas['titre']; + } + + protected function extractFullTextFromCodif($data, $field, $codif_class) { if (!$this->_dataExist($field)) return ''; @@ -334,6 +339,14 @@ class Class_Indexation_PseudoNotice_Album extends Class_Indexation_PseudoNotice{ } + protected function extractTitles() { + $titles = [parent::extractTitles()]; + foreach($this->_model->getRessources() as $ressource) + $titles[] = $ressource->getTitre(); + return implode(' ', $titles); + } + + protected function getValuesFromModel($name) { $values=$this->_model->callGetterByAttributeName($name); return (string)$values; diff --git a/tests/application/modules/admin/controllers/AlbumControllerTest.php b/tests/application/modules/admin/controllers/AlbumControllerTest.php index c582eb8b491482fefbfbb741547d680a19237462..23657760c1bf7870b09a0f3da9106cb23d271342 100644 --- a/tests/application/modules/admin/controllers/AlbumControllerTest.php +++ b/tests/application/modules/admin/controllers/AlbumControllerTest.php @@ -1675,6 +1675,12 @@ class Admin_AlbumControllerAlbumHarlocPostRessourceOneActionTest extends Admin_A } + /** @test */ + public function fichierShouldNotHaveChanged() { + $this->assertEquals('1.png', $this->ressource->getFichier()); + } + + /** @test */ public function titreShouldBeAtlantis() { $this->assertEquals('Atlantis', $this->ressource->getTitre()); @@ -1683,7 +1689,7 @@ class Admin_AlbumControllerAlbumHarlocPostRessourceOneActionTest extends Admin_A /** @test */ public function folioShouldBeThreeR() { - $this->assertEquals('1', $this->ressource->getFolio()); + $this->assertEquals('3R', $this->ressource->getFolio()); } @@ -1751,6 +1757,12 @@ class Admin_AlbumControllerAlbumHarlocPostRessourceOneActionTest extends Admin_A $authors = $this->ressource->getAlbum()->getNotice()->getAuteursUnimarc(); $this->assertEquals( count(array_unique($authors)), count($authors)); } + + + /** @test */ + public function titleAtlantisShouldBeIndexed() { + $this->assertContains('ATLANTIS', $this->ressource->getAlbum()->getNotice()->getTitres()); + } }