diff --git a/VERSIONS_HOTLINE/119892 b/VERSIONS_HOTLINE/119892 new file mode 100644 index 0000000000000000000000000000000000000000..ce9a1d2837196e2e8c474407db08607b4f270b31 --- /dev/null +++ b/VERSIONS_HOTLINE/119892 @@ -0,0 +1 @@ + - ticket #119892 : Administration : Correction de l'archivage des avis de notices du magasin de thèmes \ No newline at end of file diff --git a/application/modules/admin/controllers/ModoController.php b/application/modules/admin/controllers/ModoController.php index aa20b53d7651ff08ff59cbdcf42a2087fe3b522f..55ab6519e048d9131158227f7ee05a4ee18fbda0 100644 --- a/application/modules/admin/controllers/ModoController.php +++ b/application/modules/admin/controllers/ModoController.php @@ -37,15 +37,22 @@ class Admin_ModoController extends ZendAfi_Controller_Action { } - public function invisibleavisnoticeAction() { - if (!$review_id=$this->_request->getParam('id',0)) - $this->_forward('index'); + public function invisibleavisnoticeAction() { + if (!$review_id = $this->_request->getParam('id', 0)) + return $this->_redirectToAvisNotice(); - if(!$review = Class_AvisNotice::find($review_id)) - return $this->_forward('index'); + if (!$review = Class_AvisNotice::find($review_id)) + return $this->_redirectToAvisNotice(); - $review->setFlags(Class_AvisNotice::ARCHIVED_FLAG)->save(); - $this->_stayOnPage(); + if (!$review->setFlagArchived() + ->beImportMode() + ->save()) { + $this->_helper->notify($this->_('Une erreur c\'est produite l\'avis n\'a pas pu être archivé.')); + return $this->_redirectToAvisNotice(); + } + + $this->_helper->notify($this->_('Avis archivé')); + $this->_redirectToAvisNotice(); } diff --git a/library/Trait/Avis.php b/library/Trait/Avis.php index e67669ccfe61b29c469939d1e4379a3af8384bd2..96c80db82e09ebbf4b3f91d27e12e521a9d18722 100644 --- a/library/Trait/Avis.php +++ b/library/Trait/Avis.php @@ -138,4 +138,10 @@ trait Trait_Avis { public function isAvisNotice() { return 'notices_avis' == $this->_table_name; } + + + public function setFlagArchived() { + $this->setFlags(static::ARCHIVED_FLAG); + return $this; + } } diff --git a/tests/application/modules/admin/controllers/AdminAvisModerationControllerTest.php b/tests/application/modules/admin/controllers/AdminAvisModerationControllerTest.php index 70229314a187447c19e5f93f9fccab742aff37c2..f0e6a208b96d836ac44d033a260512abe4f75f9d 100644 --- a/tests/application/modules/admin/controllers/AdminAvisModerationControllerTest.php +++ b/tests/application/modules/admin/controllers/AdminAvisModerationControllerTest.php @@ -484,4 +484,37 @@ class AdminAvisModerationControllerCmsValidateAvisTest extends AdminAvisModerati } } -?> \ No newline at end of file + + + +/* hotline : #119892 */ +class AdminAvisModerationControllerEnteteEmptyTest + extends AdminAvisModerationControllerTestCase { + + protected $_avis_notice; + + public function setUp() { + parent::setUp(); + + $this->_avis_notice = Class_AvisNotice::find(38); + $this->_avis_notice + ->beImportMode() + ->setEntete('') + ->save(); + + $this->dispatch('/admin/modo/invisibleavisnotice/status/0/active_tab/1/page/0/id/38'); + } + + + /** @test */ + public function statusShouldBeArchived() { + $this->assertEquals(Class_AvisNotice::ARCHIVED_FLAG, + $this->_avis_notice->getFlags()); + } + + + /** @test */ + public function flashMessengerShouldContainsAvisArchive() { + $this->assertFlashMessengerContentContains('Avis archivé'); + } +}