Skip to content
Snippets Groups Projects
Commit e7737853 authored by Sebastien ANDRE's avatar Sebastien ANDRE
Browse files

Merge branch 'hotline#185534_bug_notices_de_revues' into 'master'

[RTko] hotline : #185534 : error on display serial records

See merge request !4826
parents e18a3813 15fff0df
Branches
Tags
1 merge request!4826[RTko] hotline : #185534 : error on display serial records
Pipeline #25833 failed with stage
in 15 minutes and 19 seconds
- correctif #185534 : Articles de périodiques : Correction de l'affichage de la notice périodique
\ No newline at end of file
......@@ -20,7 +20,8 @@
*/
class Intonation_Library_View_Wrapper_SerialArticleFromArray extends Intonation_Library_View_Wrapper_Abstract {
class Intonation_Library_View_Wrapper_SerialArticleFromArray
extends Intonation_Library_View_Wrapper_Abstract {
public function getMainTitle() {
return $this->_model['titre'];
......@@ -73,11 +74,15 @@ class Intonation_Library_View_Wrapper_SerialArticleFromArray extends Intonation_
public function getDescription() {
if ( ! $html = array_filter([$this->_model['note'],
$this->_model['resume']]))
return '';
$html = '';
return array_map(fn($line) => $this->_view->tag('p', $line));
if ($note = $this->_model['note'])
$html .= $this->_view->tag('p', $note);
if ($resume = $this->_model['resume'])
$html .= $this->_view->tag('p', $resume);
return $html;
}
......
......@@ -21,8 +21,8 @@
abstract class SerialsDetailsTestCase extends AbstractControllerTestCase {
protected
$_storm_default_to_volatile = true,
$_fakir_56,
$_fakir_57,
$_fakir_eco,
......@@ -31,34 +31,45 @@ abstract class SerialsDetailsTestCase extends AbstractControllerTestCase {
public function setUp() {
parent::setUp();
Class_Notice::newInstanceWithId(234,
['unimarc' => '00170nas0 2200085 450 0010008000001000018000082000030000262100009000564610019000653059603 a|||||||||2012 aFakirh58iDécembre 2012 d2012 032979322tFakir',
'titre_principal' => 'Fakir 58',
'clef_chapeau' => 'FAKIR',
'tome_alpha' => '58',
'issn' => '',
'type_doc' => Class_TypeDoc::PERIODIQUE,
'resume' => 'Fakir hebdo']);
$this->_fakir_57 =
Class_Notice::newInstanceWithId(2345,
['titre_principal' => 'Fakir 57 septembre-novembre 2012',
$this->fixture(Class_Notice::class,
['id' => 234,
'unimarc' => '00170nas0 2200085 450 0010008000001000018000082000030000262100009000564610019000653059603 a|||||||||2012 aFakirh58iDécembre 2012 d2012 032979322tFakir',
'titre_principal' => 'Fakir 58',
'clef_chapeau' => 'FAKIR',
'titres' => 'FAKIR',
'clef_alpha' => 'FAKIRHEBDO---1523---2',
'tome_alpha' => '58',
'issn' => '',
'type' => 1,
'facettes' => 'T1',
'type_doc' => Class_TypeDoc::PERIODIQUE,
'resume' => 'Fakir hebdo']);
$this->_fakir_57 = $this->fixture(Class_Notice::class,
['id' => 2345,
'titre_principal' => 'Fakir 57 septembre-novembre 2012',
'unimarc' => '00179nas0 2200085 450 0010008000001000018000082000039000262100009000654610019000743037025 a|||||||||2012 aFakirh57iSeptembre-Novembre 2012 d2012 032979322tFakir',
'clef_chapeau' => 'FAKIR',
'titres' => 'FAKIR',
'type_doc' => Class_TypeDoc::PERIODIQUE,
'tome_alpha' => '57',
'url_vignette' => '',
'url_image' => '',
'type' => 1,
'facettes' => 'T1',
'resume' => 'Fakir hebdo']);
$this->_fakir_56 =
Class_Notice::newInstanceWithId(23456,
['titre_principal' => 'juillet Fakir 56',
$this->_fakir_56 = $this->fixture(Class_Notice::class,
['id' => 23456,
'titre_principal' => 'juillet Fakir 56',
'unimarc' => '00168nas0 2200085 450 0010008000001000018000082000028000262100009000544610019000633025081 a|||||||||2012 aFakirh56iJuillet 2012 d2012 032979322tFakir',
'clef_chapeau' => 'FAKIR',
'titres' => 'FAKIR',
'tome_alpha' => '56',
'url_vignette' => '',
'url_image' => '',
'type' => 1,
'facettes' => 'T1',
'type_doc' => Class_TypeDoc::PERIODIQUE,
'resume' => 'Fakir hebdo']);
......@@ -84,6 +95,7 @@ abstract class SerialsDetailsTestCase extends AbstractControllerTestCase {
class SerialsDetailsNoticeAjaxControllerPeriodiqueSerieTest extends SerialsDetailsTestCase {
public function setUp() {
parent::setUp();
......@@ -109,6 +121,7 @@ class SerialsDetailsNoticeAjaxControllerPeriodiqueSerieTest extends SerialsDetai
abstract class SerialsDetailsWithXsltTestCase extends SerialsDetailsTestCase {
public function setUp() {
parent::setUp();
......@@ -163,9 +176,12 @@ abstract class SerialsDetailsWithXsltTestCase extends SerialsDetailsTestCase {
class SerialsDetailsNoticeAjaxControllerPeriodiqueSerieXsltTest extends SerialsDetailsWithXsltTestCase {
class SerialsDetailsNoticeAjaxControllerPeriodiqueSerieXsltTest
extends SerialsDetailsWithXsltTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/noticeajax/detail/id_notice/234');
}
}
......@@ -178,6 +194,7 @@ class SerialsDetailsRecordDescriptionPeriodiqueSerieTest
public function setUp() {
parent::setUp();
$this->_buildTemplateProfil(['id' => 78]);
Storm_Cache::beVolatile();
......@@ -259,9 +276,11 @@ class SerialsDetailsRecordDescriptionPeriodiqueSerieTest
['description', 'Un résumé succinct']];
}
/** @test
@dataProvider getElementsToTest
*/
/**
* @test
* @dataProvider getElementsToTest
*/
public function modelElementShouldCorrespondingExpectedString($element, $expected_result) {
$this->assertXPathContentContains('//p[@class="model_'.$element.'_Class_Notice"]',
$expected_result);
......@@ -279,9 +298,12 @@ class SerialsDetailsRecordDescriptionPeriodiqueSerieTest
class SerialsDetailsInThemeTest extends SerialsDetailsTestCase {
public function setUp() {
parent::setUp();
$this->_buildTemplateProfil(['id' => 789]);
$this->dispatch('/record/description/id/234');
}
......@@ -297,3 +319,53 @@ class SerialsDetailsInThemeTest extends SerialsDetailsTestCase {
$this->assertXPathContentContains('//div[@class="record_serials_articles container-fluid articles"]//div[@class="record_serials_articles_list col-12"]//div[@class="card-title card_title card_title_Intonation_Library_View_Wrapper_SerialArticleFromArray"]', 'Fakir ecologie');
}
}
/* hotline : https://forge.afi-sa.net/issues/185534 */
class SerialsDetailsWithNoteTest extends SerialsDetailsTestCase {
public function setUp() {
parent::setUp();
$this->_buildTemplateProfil(['id' => 789]);
Class_Notice_SerialArticles::find(19015)
->setUnimarc('00196nas0 2200097 450 0010008000001000018000082000039000262100009000653000015000744610009000893037025 a|||||||||2012 aFakir ecologieh57iSeptembre-Novebr 2012 aFakir note d2012')
->save();
$mock_sql = $this->mock();
Zend_Registry::set('sql', $mock_sql);
$mock_sql
->whenCalled('fetchOne')
->with("select count(*) from stats_notices where annee=2023 and mois=09")
->answers(1)
->whenCalled('execute')
->with("update stats_notices set nb_visu = nb_visu + 1 where annee=2023 and mois=09")
->answers(1)
->whenCalled('fetchAll')
->with("select id_notice, facettes from notices Where (MATCH(titres, auteurs, editeur, collection, matieres, dewey, other_terms) AGAINST('+(FAKIR FAKIRS)' IN BOOLEAN MODE)) and type=1 order by MATCH(auteurs) AGAINST('P_FAKIR') desc, MATCH(titres) AGAINST('P_FAKIR') desc, MATCH(titres) AGAINST('FAKIR') desc, MATCH(auteurs) AGAINST('FAKIR') desc, date_creation desc",
true,
false)
->answers([234, 'T1'])
->whenCalled('fetchAllByColumn')
->with('select id_notice from notices where type_doc = "2" and clef_chapeau = "FAKIR"')
->answers([234])
->beStrict();
$this->dispatch('/recherche/viewnotice/clef/FAKIRHEBDO---1523---2/id/234/tri/*/expressionRecherche/fakir');
}
/** @test */
public function divRecordSerialsShouldContainsCardTitleFakirNote() {
$this->assertXPath('//div[@class="card-text card_description card_description_Intonation_Library_View_Wrapper_SerialArticleFromArray"]/p[text()="Fakir note"]');
}
}
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