diff --git a/VERSIONS_HOTLINE/183442 b/VERSIONS_HOTLINE/183442 new file mode 100644 index 0000000000000000000000000000000000000000..28f50c4b3a1230562659aa912d224b97d132792f --- /dev/null +++ b/VERSIONS_HOTLINE/183442 @@ -0,0 +1 @@ + - correctif #183442 : PHP8.1 : Le Badge Disponibilité Exemplaire s'affiche sans erreur PHP \ No newline at end of file diff --git a/library/Class/Exemplaire.php b/library/Class/Exemplaire.php index 038a93ec51c3ddafc1efb0c9bf7eb7bb39058ba8..2a842633926fbb167c490a6615a236087cd9c4a4 100644 --- a/library/Class/Exemplaire.php +++ b/library/Class/Exemplaire.php @@ -732,8 +732,8 @@ class Class_Exemplaire extends Storm_Model_Abstract { public function getILSItemsThreshold() : int { - return $this->hasIdIntBib() - ? (int) $this->getIntBib()->getItemsThreshold() + return ($this->hasIdIntBib() && ($int_bib = $this->getIntBib())) + ? (int) $int_bib->getItemsThreshold() : 0; } diff --git a/tests/scenarios/Templates/TemplatesAvailabilityTest.php b/tests/scenarios/Templates/TemplatesAvailabilityTest.php index 0c59bc3d691dd154ae0ff7327f234156fe765769..407da88f276820aa9ccace0546269f079ec7d145 100644 --- a/tests/scenarios/Templates/TemplatesAvailabilityTest.php +++ b/tests/scenarios/Templates/TemplatesAvailabilityTest.php @@ -114,7 +114,7 @@ class TemplatesAvailabilityTest extends TemplatesAvailabilityTestCase { -class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase { +class TemplatesAvailabilityWithRelevanceTest extends TemplatesAvailabilityTestCase { public function setUp() { parent::setUp(); @@ -152,7 +152,9 @@ class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase ZendAfi_Auth::getInstance()->logUser($abonne); $this->fixture(Class_Notice::class, - ['id' => 10]); + ['id' => 10, + 'type_doc' => Class_TypeDoc::LIVRE, + 'title' => 'Le grand Meaulne']); $this->fixture(Class_Exemplaire::class, ['id' => 9, @@ -174,7 +176,7 @@ class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase public function withRecordIdThreeShouldRenderAvailableBadge() { Class_AdminVar::set('ENABLE_BOOKMARKABLE_LIBRARIES', 0); $this->dispatch('noticeajax/availability/id/10'); - $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 record_available text-left badge badge-success"][@data-record-id="10"]', 'Disponible'); + $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 doctype_id_1 record_available text-left badge badge-success"][@data-record-id="10"]', 'Disponible'); } @@ -182,6 +184,16 @@ class TemplatesAvailabilityByRelevanceTest extends TemplatesAvailabilityTestCase public function withRecordIdTenAndBookmarkedLibrariesReadyShouldRenderAvailableInMyLibraryBadge() { Class_AdminVar::set('ENABLE_BOOKMARKABLE_LIBRARIES', 1); $this->dispatch('noticeajax/availability/id/10'); - $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 record_available text-left badge badge-success"]', utf8_encode('Disponible à Gland')); + $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 doctype_id_1 record_available text-left badge badge-success"]', utf8_encode('Disponible à Gland')); + } + + + /** + * @test + * @see https://forge.afi-sa.net/issues/183442 */ + public function exemplaireAvailabilityBadgeWhenNoIntBibShouldNotThrowError() { + Class_IntBib::find(8)->delete(); + $this->dispatch('noticeajax/availability/id/10'); + $this->assertXPathContentContains('//span[@class="badge_tag badge_record_availability record_id_10 doctype_id_1 record_available text-left badge badge-success"][@data-record-id="10"]','Disponible'); } }