diff --git a/application/modules/admin/controllers/AccueilController.php b/application/modules/admin/controllers/AccueilController.php index 547bb2c5d789635d43d4bb9fa4fe4b7999f690d2..d6b979c4e34eaf9d61ca08bbe9111156cb1f5fad 100644 --- a/application/modules/admin/controllers/AccueilController.php +++ b/application/modules/admin/controllers/AccueilController.php @@ -104,7 +104,16 @@ class Admin_AccueilController extends Zend_Controller_Action { } + public function preprocessSitoCategories() { + if ((int)$this->_getParam('type_aff',0)!=3) + return; + + if ($categories=explode('-',$this->_getParam('id_categorie'))) + $this->_setParam('id_categorie',$categories[0]); + + } public function sitothequeAction() { + $this->preprocessSitoCategories(); $this->_simpleAction('SITO'); } @@ -380,7 +389,7 @@ class Admin_AccueilController extends Zend_Controller_Action { // pour combo des annexes $this->view->ya_annexes = fetchAll("select count(*) from codif_annexe where invisible=0 order by libelle"); if ($this->_request->isPost()) - $this->_updateEtRetour($this->_request->getPost(), $type); + $this->_updateEtRetour($this->_getAllParams(), $type); } diff --git a/tests/application/modules/admin/controllers/AccueilControllerTest.php b/tests/application/modules/admin/controllers/AccueilControllerTest.php index b9958afdbc6a0c7643d5b523fd8daf06f1d08adf..86e0ff1bd25d57bc8b037f270fa1506380a37ec0 100644 --- a/tests/application/modules/admin/controllers/AccueilControllerTest.php +++ b/tests/application/modules/admin/controllers/AccueilControllerTest.php @@ -209,6 +209,50 @@ class AccueilControllerConfigCalendrierTest extends Admin_AbstractControllerTest +class AccueilControllerConfigSitothequePostTest extends Admin_AbstractControllerTestCase { + public function setUp() { + parent::setUp(); + Class_Profil::beVolatile(); + Class_Profil::getCurrentProfil() + ->updateModuleConfigAccueil(25, + array('type_module' => 'SITO', + 'division' => 1, + 'id_module' => 25, + 'preferences' => ['id_items' => '12-13'])); + + } + + + /** @test */ + public function selectHierachicalDisplayShouldSaveOnlyFirstCategory() { + $this->postDispatch('/admin/accueil/sitotheque?config=accueil&id_profil=1&type_module=SITO&id_module=25', + [ + 'type_aff' => 3, + 'nb_aff' => 2, + 'group_by_categorie' => 0, + 'id_categorie' => '12-17' + ]); + + $this->assertEquals('12',Class_Profil::find(1)->getModuleAccueilConfig(25,'SITO')['preferences']['id_categorie']); + + } + + /** @test */ + public function selectHierachicalDisplayWithEmptyCategoriesShouldSaveOnlyFirstCategory() { + $this->postDispatch('/admin/accueil/sitotheque?config=accueil&id_profil=1&type_module=SITO&id_module=25', + [ + 'type_aff' => 3, + 'nb_aff' => 2, + 'group_by_categorie' => 0, + 'id_categorie' => '' + ]); + + $this->assertEquals('',Class_Profil::find(1)->getModuleAccueilConfig(25,'SITO')['preferences']['id_categorie']); + + } + + +} class AccueilControllerConfigSitothequeDefaultsTest extends Admin_AbstractControllerTestCase { public function setUp() { parent::setUp();