Skip to content
Snippets Groups Projects
Commit 68cc6544 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

Merge branch...

Merge branch 'hotline#39778_compte_lecteur_gerer_mes_favoris_domaines_doubles_a_chaque_connexion' into 'stable'

Hotline#39778 compte lecteur gerer mes favoris domaines doubles a chaque connexion

See merge request !1630
parents b7576648 92a71536
Branches
Tags
2 merge requests!1659Master,!1645Hotline master
- ticket #39778 : Amélioration de l'ergonomie du sélecteur des thèmes préférés. Tous les domaines sont à plat et triés par ordre alphabétique.
\ No newline at end of file
......@@ -976,10 +976,15 @@ class Class_Catalogue extends Storm_Model_Abstract {
$data_panier[]=$panier->toDataForJson();
}
return $this->toDataForJsonWithCategoriesItems($data_domaines, $data_panier, $options);
}
public function toDataForJsonWithCategoriesItems($categories, $items, $options = []) {
return ['id' => $this->getId(),
'label' => htmlspecialchars($this->getLibelle()),
'categories' => $data_domaines,
'items' => $data_panier,
'categories' => $categories,
'items' => $items,
'options' => array_merge(['ico' => URL_ADMIN_IMG.'picto/domaines_16.png'],$options)];
}
......@@ -1219,10 +1224,19 @@ class Class_Catalogue extends Storm_Model_Abstract {
public function getViewableDomainJson() {
$domains = Class_Catalogue::getLoader()->findAllCataloguesAIndexer();
$data_domains=[];
foreach($domains as $domain) {
$data_domains [] = $domain->toDataForJsonWithoutPaniers([]);
}
usort($domains,
function($a, $b)
{
return $a->getLibelle() > $b->getLibelle();
});
$data_domains = array_map(
function($d) {
$datas = $d->toDataForJsonWithCategoriesItems([], []);
$datas['label'] = implode(' / ', $d->getPathParts());
return $datas;
},
$domains);
return $data = ['id' => 'domains',
'label' => $this->_('Domaines'),
......
......@@ -44,7 +44,17 @@ abstract class AbonneControllerSettingsTestCase extends AbstractControllerTestCa
$this->_cinema = $this->fixture('Class_Catalogue',
['id' => 3,
'libelle' => 'Cinema']);
'libelle' => 'Cinema',
'sous_domaines' => [ $this->fixture('Class_Catalogue',
['id' => 31,
'libelle' => 'Muet',
'indexer' => '1']),
$this->fixture('Class_Catalogue',
['id' => 32,
'libelle' => 'Couleurs',
'indexer' => '1'])
]]);
$this->_user->setBookmarkedDomains([3]);
}
......@@ -67,7 +77,7 @@ class AbonneControllerSettingsFormTest extends AbonneControllerSettingsTestCase
/** @test */
public function userBookmarkedDomainShouldBeEmpty() {
public function userBookmarkedDomainShouldContainsCinema() {
$this->assertEmpty($this->_user->getBookmarkedDomains());
}
}
......@@ -94,12 +104,28 @@ class AbonneControllerSettingsFormPostTest extends AbonneControllerSettingsTestC
class AbonneControllerViewableDomainTest extends AbonneControllerSettingsTestCase {
public function setUp() {
parent::setUp();
Class_Catalogue::find(3)->setIndexer(1)->save();
$this->dispatch('opac/abonne/viewable-domains-json', true);
}
/** @test */
public function domainMusicShouldBePresent() {
$this->assertContains('[{"id":"domains","label":"Domaines","categories":[{"id":1,"label":"Music","categories":[],"items":[],"options":{"ico":', $this->_response->getBody());
$icon = BASE_URL . '/public/admin/images/picto/domaines_16.png';
$expected = [
['id' => 'domains',
'label' => 'Domaines',
'categories' => [
['id' => 3, 'label' => 'Cinema', 'categories' => [], 'items' => [], 'options' => ['ico' => $icon]],
['id' => 32, 'label' => 'Cinema / Couleurs', 'categories' => [], 'items' => [], 'options' => ['ico' => $icon]],
['id' => 31, 'label' => 'Cinema / Muet', 'categories' => [], 'items' => [], 'options' => ['ico' => $icon]],
['id' => 1, 'label' => 'Music', 'categories' => [], 'items' => [], 'options' => ['ico' => $icon]],
['id' => 2, 'label' => 'Sport', 'categories' => [], 'items' => [], 'options' => ['ico' => $icon]],
],
'items' => [],
'options' => ['ico' => $icon, 'multipleSelection' => true ]]];
$this->assertJsonStringEqualsJsonString(json_encode($expected),
$this->_response->getBody());
}
}
\ No newline at end of file
......@@ -245,13 +245,14 @@ class SitoViewHelperSelectItemsByRandomOrderTest extends SitoViewHelperTestCase
for($i=0; $i < 10; $i++)
$htmls[] = $this->_helper->getBoite();
$this->assertEquals(2, count(array_unique($htmls)));
$this->assertEquals(2, count(array_unique($htmls)), json_encode($htmls));
}
/** @test */
public function pageShouldNotContainsLinkToReloadModule() {
$this->assertNotXPath($this->html, '//a[contains(@href, "sito/widget-page/id_module/2/id_division/1")]');
$this->assertNotXPath($this->html,
'//a[contains(@href, "sito/widget-page/id_module/2/id_division/1")]');
}
}
......
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