Skip to content
Snippets Groups Projects
Commit 2e0e5248 authored by efalcy's avatar efalcy
Browse files

sandbox #49081 : display default category if selected articles has same category

parent 64e1e0eb
Branches
Tags
2 merge requests!1864Master,!1692Sandbox multiple articles selection
......@@ -56,6 +56,17 @@ class ArticleCategorieLoader extends Storm_Model_Loader {
return array_merge($articles_ids, $this::findAllArticlesIds($sub_categories));
}
public function findDistinctCategories($articles) {
$ids = array_map(function($article) {return $article->getId();},
$articles);
return Class_ArticleCategorie::findAll('select distinct id_cat from cms_article where id_article in ('.
implode(',',$ids).
')');
}
}
......
......@@ -541,9 +541,19 @@ class ZendAfi_Controller_Action extends Zend_Controller_Action {
return $post;
}
protected function getDefaultArticle($articles) {
$article = $this->_definitions->newModel();
$cat = $cat=Class_ArticleCategorie::findDistinctCategories($articles);
if (count($cat)==1) {
$article->setCategorie($cat[0]);
}
return $article;
}
protected function _setupFormAndUpdateModels($articles) {
$form = $this->_getMultipleSelectionForm($this->_definitions->newModel());
$form = $this->_getMultipleSelectionForm($this->getDefaultArticle($articles));
$this->view->form = $form;
if (!$this->_request->isPost())
......
......@@ -134,10 +134,16 @@ class Admin_CmsControllerMultipleSelectionEditActionTest extends Admin_CmsContro
}
/** @test */
/** @test */
public function categorySelectorShouldContainsCinema() {
$this->assertXPathContentContains('//select[@name="id_cat"]//option[@value="30"]',"Cinéma",$this->_response->getBody());
}
/** @test */
public function categoryCinemaShouldBeSelected() {
$this->assertXPathContentContains('//select[@name="id_cat"]//option[@value="30"][@selected="selected"]',"Cinéma",$this->_response->getBody());
}
}
......@@ -281,6 +287,11 @@ abstract class Admin_CmsControllerMultipleSelectionPostTestCase extends Admin_Ab
'libelle' => 'Evènements',
'sous_categories' => []]);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_ArticleCategorie')
->whenCalled('findDistinctCategories')
->answers([$this->cat_evenements]);
$this->concert = $this->fixture('Class_Article',
['id' => 4,
'categorie' => $this->cat_evenements,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment