diff --git a/VERSIONS_HOTLINE/144497 b/VERSIONS_HOTLINE/144497
new file mode 100644
index 0000000000000000000000000000000000000000..ad6be748620ba2aafab5c163c665e3050220062c
--- /dev/null
+++ b/VERSIONS_HOTLINE/144497
@@ -0,0 +1 @@
+ - correctif #144497 : Mon Compte : Les prêts des membres d'une carte sont désormais affichés dans la page Prêts ou l'onglet mes prêts (Magasin de Thèmes) 
\ No newline at end of file
diff --git a/application/modules/opac/controllers/AbonneController.php b/application/modules/opac/controllers/AbonneController.php
index 1c883dc6e1115a30f2f7fd55ecbf07481eb3b1d6..e3f876316b97e5bc42aeafd80fc190f021af4e29 100644
--- a/application/modules/opac/controllers/AbonneController.php
+++ b/application/modules/opac/controllers/AbonneController.php
@@ -459,9 +459,8 @@ class AbonneController extends ZendAfi_Controller_Action {
 
 
   public function reservationsAction()  {
-    $cards = new Class_User_Cards($this->_user);
-
     if ($delete = $this->_getParam('id_delete')) {
+      $cards = new Class_User_Cards($this->_user);
       $title = strip_tags($cards->getHoldTitle($delete));
       $result = $cards->cancelHold($delete);
       $message = array_key_exists('erreur', $result) && $result['erreur']
diff --git a/library/Class/User/Cards.php b/library/Class/User/Cards.php
index c0e2bf4ffdea7b284576d1f1fd45e1e7b4b73adc..32ca3c328d236996ba6ea902efbb288b241b3f95 100644
--- a/library/Class/User/Cards.php
+++ b/library/Class/User/Cards.php
@@ -30,7 +30,11 @@ class Class_User_Cards extends Storm_Model_Collection {
     if ($user->isAbonne() || $user->hasPnbLoans() || $user->hasPnbHolds())
       $this->append($user);
 
-    $this->addAll($user->getChildCards());
+    if ($user->hasChildCards())
+      $this->addAll($user->getChildCards());
+
+    if ($ilschildcards = $user->getILSChildCards())
+      $this->addAll($ilschildcards);
   }
 
 
diff --git a/library/Class/Users.php b/library/Class/Users.php
index 9f1b9133194137d04339df8a6c5e7519ca37bd52..cb32fee471ba49df1f2e3ec75fa07f2cd56af8a9 100644
--- a/library/Class/Users.php
+++ b/library/Class/Users.php
@@ -2040,4 +2040,16 @@ class Class_Users extends Storm_Model_Abstract {
       ? ($this->getIdSite() === $profile->getIdSite())
       : $this->hasRightConfigFront() ;
   }
+
+
+  public function getILSChildCards() : array {
+    if ('1' !== (string) $this->getOrdreabon())
+      return [];
+
+    /* findAllBy(['… not' => '…']) is not compatible with volatile fixtures */
+    return (new Storm_Model_Collection($this->getLoader()->findAllBy(['idabon' => $this->getIdabon()])))
+      ->select((fn($user) => '1' !== (string) $user->getOrdreabon()
+                && $user->getId() !== $this->getId()))
+      ->getArrayCopy();
+  }
 }
diff --git a/library/Class/WebService/SIGB/Nanook/Service.php b/library/Class/WebService/SIGB/Nanook/Service.php
index 0b65c92f7fe13d2f74c6e2998baab595dc4c1c03..8d1ae03ca153a357faf9945b240c460362c7b902 100644
--- a/library/Class/WebService/SIGB/Nanook/Service.php
+++ b/library/Class/WebService/SIGB/Nanook/Service.php
@@ -111,34 +111,40 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
    * @return Class_WebService_SIGB_Emprunteur
    */
   public function getEmprunteur($user) {
-    if (!$user
-        || (!$patron_id = $this->_patronIdFromUser($user)))
+    if ( ! $patron_id = $this->_patronIdFromUser($user))
       return Class_WebService_SIGB_Emprunteur::nullInstance();
 
-    $emprunteur = $this->ilsdiGetPatronInfo(['patronId' => $user->getIdSigb()],
-                                            Class_WebService_SIGB_Nanook_PatronInfoReader::newInstance());
+    $emprunteur = $this
+      ->ilsdiGetPatronInfo(['patronId' => $patron_id],
+                           Class_WebService_SIGB_Nanook_PatronInfoReader::newInstance());
 
-    if (!$emprunteur->getCodeBarres())
+    if (!$emprunteur->getCodeBarres() && $user->getLogin())
       $emprunteur->setCodeBarres($user->getLogin());
 
-    $emprunteur->setPassword($user->getPassword());
+    if ($user->getPassword())
+      $emprunteur->setPassword($user->getPassword());
 
     return $emprunteur;
   }
 
 
-  protected function _patronIdFromUser($user) {
-    if (Class_Users::isCurrentUserCanAccesBackend() && $user->getIdSigb())
-      return $user->getIdSigb();
+  protected function _patronIdFromUser(?Class_Users $user) : string {
+    if ( ! $user )
+      return '';
 
-    $patron_id = Class_Users::isLogged($user)
-      ? $user->getIdSigb()
-      : '';
+    $id_sigb = (string) $user->getIdSigb();
 
-    if (!$patron_id && $this->ilsdiAuthenticatePatron($user))
-      $patron_id = $user->getIdSigb();
+    if (($logged_user = Class_Users::getIdentity())
+        && $logged_user->getIdabon() === $user->getIdabon()
+        && 1 === (int) $logged_user->getOrdreabon()
+        && 1 !== (int) $user->getOrdreabon())
+      return $id_sigb;
 
-    return $patron_id;
+    return (Class_Users::isCurrentUserCanAccesBackend()
+        || Class_Users::isLogged($user)
+        || $this->ilsdiAuthenticatePatron($user))
+      ? (string) $user->getIdSigb()
+      : '';
   }
 
 
diff --git a/tests/application/modules/admin/controllers/AdminAbstractControllerTestCase.php b/tests/application/modules/admin/controllers/AdminAbstractControllerTestCase.php
index e22d63fda3892e2ccd2820bf0ce81b6c036b563b..b9c6184ff4ae3f035ec8299a07d4a7b08973e62e 100644
--- a/tests/application/modules/admin/controllers/AdminAbstractControllerTestCase.php
+++ b/tests/application/modules/admin/controllers/AdminAbstractControllerTestCase.php
@@ -35,7 +35,6 @@ abstract class Admin_AbstractControllerTestCase extends AbstractControllerTestCa
   }
 
   protected function _setDefaultAdminGroups() {
-    xdebug_break();
     $default_categorie = $this->fixture(Class_UserGroupCategorie::class,
                                         ['id' => 1,
                                          'libelle' => $this->_('Système')]);
diff --git a/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php b/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php
index c246f18e2458fafa9560d76050cc504172461357..05e52709157ebe78499222f3f36945aad90d93a7 100644
--- a/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php
+++ b/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php
@@ -52,7 +52,10 @@ abstract class AbstractAbonneControllerPretsTestCase extends AbstractControllerT
     $this->florence = $this->fixture('Class_Users',
                                      ['id' => '123456',
                                       'login' => 'flo',
-                                      'idabon' => 'x234',
+                                      'idabon' => '123456',
+                                      'ordreabon' => '1',
+                                      'nom' => 'Hinkel',
+                                      'prenom' => 'Florence',
                                       'password' => 'flo',
                                       'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB,
                                       'int_bib' => $library,
@@ -1204,6 +1207,100 @@ class AbonneControllerPretsListMoreThanUndredLoansTest extends AbonneControllerP
 
 
 
+class AbonneControllerPretsListWithILSChildCardLinkTest extends AbonneControllerPretsListThreePretsTestCase {
+  public function setUp() {
+    parent::setUp();
+    $this->fixture(Class_CodifAuteur::class,
+                  ['id' => 456,
+                   'libelle' => 'JRR Tolkien']);
+
+    $user = $this->fixture(Class_Users::class,
+                           ['id' => 42,
+                            'idabon' => 123456,
+                            'login' => 123456,
+                            'password' => 123456,
+                            'nom' => 'Lemérovingien',
+                            'prenom' => 'Romain',
+                            'ordreabon' => 155
+                           ]);
+
+    $item = $this->fixture(Class_Exemplaire::class,
+                           ['id' => 1275,
+                            'id_origine' => 12358,
+                            'code_barres' => 1235813,
+                            'id_int_bib' => 1,
+                            'zone995' => serialize([['clef' => 'a', 'valeur' => 'SaroumaneSansCouleur']]),
+                            'notice' => $this->fixture('Class_Notice',
+                                                       ['id' => 990,
+                                                        'titre_principal' => 'Le Silmarillion',
+                                                        'type_doc' => 1,
+                                                        'unimarc' => (new Class_NoticeUnimarc_Fluent)
+                                                        ->zoneWithContent('001',1275)
+                                                        ->zoneWithChildren('200', ['a' => 'Le Silmarillion',
+                                                                           'f' => 'JRR Tolkien'])
+                                                        ->zoneWithChildren('700', ['a' =>'Tolkien',
+                                                                                   'b' =>'JRR'])
+                                                        ->render()]
+                            )]);
+
+    $silmarillion = new Class_WebService_SIGB_Emprunt('46', new Class_WebService_SIGB_Exemplaire(1275));
+    $silmarillion
+      ->setCodeBarre(1235813)
+      ->getExemplaire()
+      ->setTitre('Le Silmarillion')
+      ->setRenewals(1)
+      ->setExemplaireOPAC($item);
+    $silmarillion
+      ->parseExtraAttributes(['Dateretourprevue' => '31/10/2023',
+                              'Section' => 'Espace jeunesse',
+                              'Auteur' => 'JRR Tolkien',
+                              'Bibliotheque' => 'Astrolabe',
+                              'N° de notice' => '12358',
+                              'Type' => 'P1']);
+
+
+
+    $emprunteur = new Class_WebService_SIGB_Emprunteur('4567', 'Romain');
+    $emprunteur
+      ->setLibraryCode('IST')
+      ->empruntsAddAll([$silmarillion]);
+
+
+    $user->setFicheSigb(['type_comm' => 2,
+                         'fiche' => $emprunteur,
+                         'erreur' => '']);
+
+    $this->dispatch('/opac/abonne/prets');
+  }
+
+
+  /** @test */
+  public function pageshouldContains3Loans() {
+    $this->assertXpathCount('//table[@id="borrower_loans"]//tbody//tr', 3);
+  }
+
+
+  /** @test */
+  public function JRRTolkienAuthorShouldBeInLoansList() {
+    $this->assertXPathContentContains('//table[@id="borrower_loans"]//tbody/tr//td[5]', 'JRR Tolkien');
+  }
+
+
+  /** @test */
+  public function oneLoantitleShouldBeLeSilmarillion() {
+    $this->assertXPathContentContains('//table[@id="borrower_loans"]//tbody/tr//td[4]','Le Silmarillion');
+  }
+
+
+  /** @test */
+  public function oneBorrowerNameShouldBeRomainLeMerovingien() {
+    $this->assertXPathContentContains('//table[@id="borrower_loans"]//tbody/tr//td[1]', 'Romain Lemérovingien');
+  }
+}
+
+
+
+
 class AbonneControllerPretsListMoreThanUndredHoldsTest extends AbonneControllerPretsListReservationTestCase {
   public function setUp() {
     parent::setUp();
diff --git a/tests/library/Class/Notice/DoubleFinderTest.php b/tests/library/Class/Notice/DoubleFinderTest.php
index cbe17c057874c4345f8ba30baa95485f0b9295d6..ed0131cbf9fc37b515dfd9c569acfa93aee82530 100644
--- a/tests/library/Class/Notice/DoubleFinderTest.php
+++ b/tests/library/Class/Notice/DoubleFinderTest.php
@@ -271,8 +271,8 @@ class DoubleFinderWithExistingAlphaKeyTest extends DoubleFinderWithRecordMatchin
   protected function _prepareFixtures() {
     parent::_prepareFixtures();
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_ALPHA_KEY);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_ALPHA_KEY);
   }
 
 
@@ -296,8 +296,8 @@ class DoubleFinderWithExistingItemInAnotherLibraryTest extends DoubleFinderTestC
   protected function _prepareFixtures() {
     parent::_prepareFixtures();
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_BARCODE_UNIQ_MODE,
-                        Class_CosmoVar::UNIQ_BARCODE_WITHIN_LIBRARY);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_BARCODE_UNIQ_MODE,
+                               Class_CosmoVar::UNIQ_BARCODE_WITHIN_LIBRARY);
 
     $this->fixture('Class_IntBib', ['id' => 42]);
   }
@@ -321,8 +321,8 @@ class DoubleFinderWithExistingItemAndNoDedupModeTest extends DoubleFinderWithRec
   protected function _prepareFixtures() {
     parent::_prepareFixtures();
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_NONE);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_NONE);
   }
 
 
@@ -342,8 +342,8 @@ class DoubleFinderWithExistingIdOrigneNoDedupModeDefaultTest extends DoubleFinde
   protected function _prepareFixtures() {
     parent::_prepareFixtures();
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_NONE);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_NONE);
   }
 
 
@@ -367,8 +367,8 @@ class DoubleFinderWithExistingIdOrigneNoDedupModeForNanookTestTest extends Doubl
                    ['id' => 1,
                     'sigb' => Class_IntBib::SIGB_NANOOK]);
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_NONE);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_NONE);
   }
 
 
@@ -395,8 +395,8 @@ class DoubleFinderWithExistingCodeBarreInRemotelyDeletedRecordNoDedupModeForNano
                    ['id' => 1,
                     'sigb' => Class_IntBib::SIGB_NANOOK]);
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_NONE);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_NONE);
 
     $this->fixture('Class_Notice',
                    ['id' => 55,
@@ -430,11 +430,11 @@ class DoubleFinderWithDublinCoreProfileTest extends ModelTestCase {
   public function setUp() {
     parent::setUp();
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_BARCODE_UNIQ_MODE,
-                        Class_CosmoVar::UNIQ_BARCODE_WITHIN_LIBRARY);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_BARCODE_UNIQ_MODE,
+                               Class_CosmoVar::UNIQ_BARCODE_WITHIN_LIBRARY);
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_ALPHA_KEY);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_ALPHA_KEY);
 
     $this->fixture('Class_IntBib', ['id' => 1]);
     $this->fixture('Class_IntProfilDonnees',
@@ -509,8 +509,8 @@ class DoubleFinderWithExistingDoctypeModificationTest extends DoubleFinderTestCa
                    ['id' => 1,
                     'sigb' => Class_IntBib::SIGB_KOHA]);
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_NONE);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_NONE);
 
     $this->fixture('Class_Notice',
                    ['id' => 1,
@@ -542,8 +542,8 @@ class DoubleFinderWithExistingDoctypeModificationTest extends DoubleFinderTestCa
 class DoubleFinderWithExistingStrategyIdsThenAlphaKeyTest extends ModelTestCase {
   public function setUp() {
     parent::setUp();
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_IDS_THEN_ALPHA_KEY);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_IDS_THEN_ALPHA_KEY);
 
     $this->fixture(Class_Notice::class,
                    ['id' => 8,
@@ -610,8 +610,8 @@ class DoubleFinderWithExistingIdOrigneNoDedupModeButItsACafeynAlbumTest extends
                    ['id' => 1,
                     'sigb' => Class_IntBib::SIGB_NANOOK]);
 
-    Class_CosmoVar::set(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
-                        Class_CosmoVar::DOUBLE_SEARCH_NONE);
+    Class_CosmoVar::setValueOf(Class_Notice_DoubleFinder::VAR_DOUBLE_MODE,
+                               Class_CosmoVar::DOUBLE_SEARCH_NONE);
 
     $this->fixture('Class_Notice',
                    ['id' => 55,
diff --git a/tests/library/Class/WebService/SIGB/NanookTest.php b/tests/library/Class/WebService/SIGB/NanookTest.php
index ae89400ef492bf87c384a18c0f04eb229375ebf1..388932c9081e79d8fe341803bea4a49043e1ebf9 100644
--- a/tests/library/Class/WebService/SIGB/NanookTest.php
+++ b/tests/library/Class/WebService/SIGB/NanookTest.php
@@ -992,7 +992,8 @@ class NanookGetEmprunteurAuthenticateTest extends NanookTestCase {
 
 class NanookGetEmprunteurPBTest extends NanookTestCase {
   /** @var Class_WebService_SIGB_Emprunteur */
-  protected $_emprunteur;
+  protected $_emprunteur,
+    $_storm_default_to_volatile = true;
 
 
   public function setUp() {
@@ -1032,6 +1033,7 @@ class NanookGetEmprunteurPBTest extends NanookTestCase {
     $this->assertEmpty($this->_emprunteur->getEmail());
   }
 
+
   /** @test */
   public function idAbonShouldBeLogin() {
     $this->assertEquals("77777", $this->_emprunteur->getIdAbon());
diff --git a/tests/scenarios/Templates/TemplatesAbonneTest.php b/tests/scenarios/Templates/TemplatesAbonneTest.php
index a0057aea6fc8cdac581c22a2ae324b7cd16dbffd..a5e93c4f38bb2aa014b6fda1d69e905f90323934 100644
--- a/tests/scenarios/Templates/TemplatesAbonneTest.php
+++ b/tests/scenarios/Templates/TemplatesAbonneTest.php
@@ -20,6 +20,7 @@
  */
 
 require_once 'TemplatesTest.php';
+include_once 'tests/fixtures/NanookFixtures.php';
 
 
 abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTestCase {
@@ -164,8 +165,10 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
 
     $current_user = Class_Users::getIdentity();
     $current_user
+      ->setIdUser(1234)
       ->setPassword('test')
       ->setIdabon(123456)
+      ->setOrdreabon('1')
       ->setDateFin('2020/01/01')
       ->setFicheSigb(['type_comm' => 2,
                       'fiche' => $this->_emprunteur,
@@ -502,6 +505,159 @@ class TemplatesDispatchAbonneAjaxLoansTest extends TemplatesIntonationAccountTes
 
 
 
+abstract class TemplatesDispatchAbonneWithILSChildCardTestCase extends TemplatesIntonationAccountTestCase {
+  public function setUp() {
+    parent::setUp();
+    $user =
+      $this->fixture(Class_Users::class,
+                     ['id' => 42,
+                      'idabon' => 123456,
+                      'id_sigb' => 12738917239,
+                      'login' => 123456,
+                      'id_int_bib' => 1,
+                      'id_site' => 1,
+                      'password' => 123456,
+                      'nom' => 'Patronymique',
+                      'prenom' => 'handi',
+                      'ordreabon' => 12
+                     ]);
+
+    $web_client = $this
+      ->mock()
+
+      ->whenCalled('open_url')
+      ->with('http://localhost:8080/afi_Nanook/ilsdi/service/GetPatronInfo/patronId/12738917239')
+      ->answers(NanookFixtures::xmlGetPatronChristelDelpeyrouxAfterPost())
+      ->beStrict();
+
+    $service = Class_WebService_SIGB_Nanook_Service::newInstance()
+      ->setServerRoot('http://localhost:8080/afi_Nanook/ilsdi/')
+      ->setWebClient($web_client);
+
+    $params = ['url_serveur' => 'http://localhost:8080/afi_Nanook/ilsdi/',
+               'id_bib' => 1,
+               'type' => Class_IntBib::COM_NANOOK];
+
+    $this->fixture(Class_Bib::class,
+                   ['id' => 1,
+                    'libelle' => 'Bibliothèque'
+                   ]);
+
+    $this->fixture(Class_IntBib::class,
+                   ['id' => 1,
+                    'comm_sigb' => Class_IntBib::COM_NANOOK,
+                    'comm_params' => serialize($params)]);
+
+    Class_WebService_SIGB_Nanook::setService($params, $service);
+
+    Class_WebService_SIGB_AbstractRESTService::shouldThrowError(true);
+  }
+
+
+  public function tearDown() {
+    Class_WebService_SIGB_Nanook::reset();
+    parent::tearDown();
+  }
+}
+
+
+
+class TemplatesDispatchAbonnesWithILSChildCardFailuresTest extends TemplatesDispatchAbonneWithILSChildCardTestCase {
+  /** @test */
+  public function WithOrdreabonn1LoanlistTitleShouldNotContainsBeartEnPublic() {
+    Class_Users::find(42)->setOrdreabon(1);
+    $this->dispatch('/opac/abonne/ajax-loans/id_profil/72');
+    $this->assertXPathCount('//div[@class="card"]', 3);
+    $this->assertNotXPathContentContains('//div[@class="card"]//div[@class="document_title"]',
+                                         utf8_encode('Béart en public'));
+  }
+
+
+  /** @test */
+  public function withDifferentIdabonnloanlistShouldNotContainsBeartEnPublic() {
+    Class_Users::find(42)->setIdabon(11234);
+    $this->dispatch('/opac/abonne/ajax-loans/id_profil/72');
+    $this->assertXPathCount('//div[@class="card"]', 3);
+    $this->assertNotXPathContentContains('//div[@class="card"]//div[@class="document_title"]',
+                                         utf8_encode('Béart en public'));
+  }
+
+
+  /** @test
+      ChildCard is based on same Idabon
+  */
+  public function withDifferentIdabonForCurrentUserloanlistShouldNotContainsBeartEnPublic() {
+    Class_Users::getIdentity()->setIdabon(42);
+    $this->dispatch('/opac/abonne/ajax-loans/id_profil/72');
+    $this->assertXPathCount('//div[@class="card"]', 3);
+    $this->assertNotXPathContentContains('//div[@class="card"]//div[@class="document_title"]',
+                                         utf8_encode('Béart en public'));
+  }
+
+
+  /** @test
+      ChildCard Only Displayed for Master Card
+  */
+  public function withDifferentOrdreabonForCurrentUserloanlistShouldNotContainsBeartEnPublic() {
+    Class_Users::getIdentity()->setOrdreabon(42);
+    $this->dispatch('/opac/abonne/ajax-loans/id_profil/72');
+    $this->assertXPathCount('//div[@class="card"]', 3);
+    $this->assertNotXPathContentContains('//div[@class="card"]//div[@class="document_title"]',
+                                         utf8_encode('Béart en public'));
+  }
+}
+
+
+
+
+class TemplatesDispatchAbonneAjaxLoansWithILSChildCardTest extends TemplatesDispatchAbonneWithILSChildCardTestCase {
+  public function setUp(){
+    parent::setUp();
+    $this->dispatch('/opac/abonne/ajax-loans/id_profil/72');
+  }
+
+
+  /** @test */
+  public function loanlistShouldContainsBeartEnPublic() {
+    $this->assertXPathContentContains('//div[@class="card"]//div[@class="document_title"]',
+                                      utf8_encode('Béart en public'));
+  }
+
+
+  /** @test */
+  public function loanlistLoanByShouldContainsHandiPatronymique() {
+    $this->assertXPathContentContains('//div[@class="card"]//div[@class="loan_by"]',
+                                      utf8_encode('Emprunté par <span class="by_idabon d-none">123456</span> handi Patronymique'));
+  }
+}
+
+
+
+
+
+class TemplatesDispatchAbonneReservationWithILSChildCardTest extends TemplatesDispatchAbonneWithILSChildCardTestCase {
+  public function setUp(){
+    parent::setUp();
+    $this->dispatch('/opac/abonne/reservations/id_profil/72');
+  }
+
+
+  /** @test */
+  public function holdListDocumentTitleShouldContainsConteDesQuatresVents() {
+    $this->assertXPathContentContains('//div[@class="document_title"]',
+                                      'Contes des quatre vents');
+  }
+
+
+  /** @test */
+  public function holdlistHoldByShouldContainsHandiPatronymique() {
+    $this->assertXPathContentContains('//div[@class="hold_by"]',
+                                      'Réservé par <span class="by_idabon d-none">123456</span> handi Patronymique');
+  }
+}
+
+
+
 
 class TemplatesDispatchAbonneMonHistoriqueTest extends TemplatesIntonationAccountTestCase {
   public function setUp(){