From bb9233f572cc03b2cd053c222135864ccc8545b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ANDRE=20s=C3=A9bastien?= <sandre@afi-sa.fr> Date: Tue, 2 Nov 2021 17:17:01 +0100 Subject: [PATCH] hotline : #143697 : save album lost authors --- VERSIONS_HOTLINE/143697 | 1 + library/Class/Album.php | 1 + .../admin/controllers/AlbumControllerTest.php | 71 ++++++++++++++++--- 3 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 VERSIONS_HOTLINE/143697 diff --git a/VERSIONS_HOTLINE/143697 b/VERSIONS_HOTLINE/143697 new file mode 100644 index 00000000000..da58b74ab6e --- /dev/null +++ b/VERSIONS_HOTLINE/143697 @@ -0,0 +1 @@ + - ticket #143697 : Administration : correction de la perte des auteurs à la sauvegarde des albums. \ No newline at end of file diff --git a/library/Class/Album.php b/library/Class/Album.php index 937252177a6..dcf0a0e5563 100644 --- a/library/Class/Album.php +++ b/library/Class/Album.php @@ -1009,6 +1009,7 @@ class Class_Album extends Storm_Model_Abstract { public function collectAuthors() { $authors = $this->_collect('authors', self::AUTHOR_FIELD); + $this->_authors = null; if(isset($authors['author'])) foreach($authors['author'] as $k => $v) $this->addAuthor($v, $authors['fonction'][$k]); diff --git a/tests/application/modules/admin/controllers/AlbumControllerTest.php b/tests/application/modules/admin/controllers/AlbumControllerTest.php index 884052eea89..b30bea0cec8 100644 --- a/tests/application/modules/admin/controllers/AlbumControllerTest.php +++ b/tests/application/modules/admin/controllers/AlbumControllerTest.php @@ -552,10 +552,10 @@ class Admin_AlbumControllerDeleteCategorieFavorisTest extends Admin_AlbumControl ->whenCalled('execTimedScript') ->with(3600, 'delete_album_category.php \'2\' >/dev/null 2>&1 &') ->willDo(function() - { - Class_AlbumCategorie::find(2)->delete(); - Class_AlbumCategorie::clearCache(); - }); + { + Class_AlbumCategorie::find(2)->delete(); + Class_AlbumCategorie::clearCache(); + }); Class_AlbumCategorie_Remover::setCommand($command); @@ -3014,8 +3014,8 @@ class AlbumControllerMultiMediasExportCSV extends ControllerAlbumMultiMediasTest 'libelle' => 'Jeunesse']); Class_AlbumCategorie::find(33) - ->setParentCategorie(Class_AlbumCategorie::find(34)) - ->save(); + ->setParentCategorie(Class_AlbumCategorie::find(34)) + ->save(); Class_Album::find('999') ->AddEditor('Dargaud') @@ -3062,7 +3062,7 @@ class AlbumControllerMultiMediasExportCSV extends ControllerAlbumMultiMediasTest /** @test - */ + */ public function secondRowShouldContainsValuesForAlbum() { // cannot assertEquals entire row due to array sort diff between php5 and php7 foreach(['Jeunesse > Comics', 'Plein de medias', '<p>pour passer la soirée</p>', '2019','Titi','Dargaud'] @@ -3072,7 +3072,7 @@ class AlbumControllerMultiMediasExportCSV extends ControllerAlbumMultiMediasTest /** @test - */ + */ public function thirdRowShouldContainsValuesForBatmanDarkKnightRessource() { foreach(['Batman Dark Knight', 'Une nouvelle aventure du justicier noir' ] as $value) @@ -3668,9 +3668,9 @@ class Admin_AlbumControllerPostEditWithFilesAlbumMesBDTest extends Admin_AlbumCo parent::setUp(); Class_UploadMover_HttpPost::setFileWriter($this->mock() ->whenCalled('moveUploadedFile') - ->answers(true) - ->whenCalled('fileExists') - ->answers(true)); + ->answers(true) + ->whenCalled('fileExists') + ->answers(true)); } @@ -3792,3 +3792,52 @@ class Admin_AlbumControllerPostEditWithFilesAlbumMesBDTest extends Admin_AlbumCo $this->assertEquals('45_mypic.jpg',Class_Album::find(45)->getFile()); } } + + + + +class Admin_AlbumControllerPostEditLostAuthorTest + extends Admin_AbstractControllerTestCase { + + protected $_storm_default_to_volatile = true; + + + public function setUp() { + parent::setUp(); + + $this->fixture(Class_AlbumCategorie::class, + ['id' => 6, + 'libelle' => 'Adulte']); + + $this->fixture(Class_Album::class, + ['id' => 44, + 'titre' => 'Il ne fonctionne pas.']); + + Class_Album::find(44) + ->addAuthor('Georges') + ->save(); + + $this->postDispatch('/admin/album/edit_album/id/44', + ['titre' => 'Il ne fonctionne pas.', + 'sous_titre' => 'Mes BD', + 'created_at' => '06/10/2017', + 'status' => Class_Album::STATUS_VALIDATED, + 'type_doc_id' => '102', + 'cat_id' => 6, + 'author' => ['Georges'], + 'fonction' => ['']]); + } + + + /** @test */ + public function albumShouldBeSavedWithoutError() { + $this->assertFlashMessengerContentContains('Album sauvegardé'); + } + + + /** @test */ + public function authorGeorgesShouldBeInNotes() { + Class_Album::clearCache(); + $this->assertContains('Georges', Class_Album::find(44)->getNotes()); + } +} -- GitLab