diff --git a/VERSIONS_HOTLINE/134950 b/VERSIONS_HOTLINE/134950
new file mode 100644
index 0000000000000000000000000000000000000000..4cd6598142260696b153938e00b8e65f1ede93ac
--- /dev/null
+++ b/VERSIONS_HOTLINE/134950
@@ -0,0 +1 @@
+ - ticket #134950 : Amélioration des performances : diminution du nombre de requêtes vers forge.afi-sa.fr / diminution des requêtes de mise à jour des notices et exemplaires
\ No newline at end of file
diff --git a/application/modules/opac/controllers/AbonneController.php b/application/modules/opac/controllers/AbonneController.php
index 40e619e0c8e0a55408ffe1425473d02c916fb18b..64d2ad5846324e22b1399d6031b7b69071730e16 100644
--- a/application/modules/opac/controllers/AbonneController.php
+++ b/application/modules/opac/controllers/AbonneController.php
@@ -1533,8 +1533,6 @@ class AbonneController extends ZendAfi_Controller_Action {
 
 
   public function reserverAction() {
-    session_write_close();
-
     $this->view->titre = $this->_('Réserver un document');
 
     if (!$record = Class_Notice::find($this->_getParam('record_id', 0)))
@@ -1557,8 +1555,6 @@ class AbonneController extends ZendAfi_Controller_Action {
     $items = (new Class_Profil_ItemsFilter())->select(Class_Profil::getCurrentProfil(), $items);
 
     $this->view->items = (new Class_CommSigb())->getDispoExemplaires($items);
-
-    $record->updateFacetsFromExemplaires();
   }
 
 
diff --git a/application/modules/opac/controllers/NoticeajaxController.php b/application/modules/opac/controllers/NoticeajaxController.php
index f071418abcad76945111fa404a236a1d68fa71fc..808576747fc41d49f964533a3a2021e9a16f449f 100644
--- a/application/modules/opac/controllers/NoticeajaxController.php
+++ b/application/modules/opac/controllers/NoticeajaxController.php
@@ -100,12 +100,10 @@ class NoticeAjaxController extends ZendAfi_Controller_Action {
     $exemplaires = $this->_loadExemplaire(["id_notice" => $notice_ids]);
 
     foreach($exemplaires as $exemplaire)
-      $exemplaire->updateAvailabilityAndLocationFromSIGB()
-                 ->save();
+      $exemplaire->updateAvailabilityAndLocationFromSIGBAndSaveIfNeeded();
 
     foreach(Class_Notice::findAllBy(['id_notice' => $notice_ids]) as $notice)
-      $notice->updateFacetsFromExemplaires()
-             ->save();
+      (new Class_Notice_Facettes($notice))->updateFacetsFromExemplairesAndSaveIfNeeded();
 
     $exemplaires = (new Class_CommSigb())->getDispoExemplaires($exemplaires);
 
@@ -708,4 +706,4 @@ class NoticeAjaxController extends ZendAfi_Controller_Action {
     $this->_helper->getHelper('HTMLAjaxResponse')
                   ->htmlAjaxResponseWithScript($content);
   }
-}
\ No newline at end of file
+}
diff --git a/library/Class/Bib.php b/library/Class/Bib.php
index bce12b965960a2d1354970b0ccf7ec806180b66f..bae4370a335132a8c2cd48216464a681e32b666b 100644
--- a/library/Class/Bib.php
+++ b/library/Class/Bib.php
@@ -72,7 +72,13 @@ class BibLoader extends Storm_Model_Loader {
   public function findAllRedmineEnabled() {
     return (new Storm_Model_Collection(Class_Bib::findAllSortedByLabel()))
       ->select('isRedmineEnabled')
-      ->getArrayCopy();
+      ->injectInto([],
+                   function($distinct_library_accounts, $library) {
+                     $account = $library->getRedmineLoginOrKey();
+                     if (!isset($distinct_library_accounts[$account]))
+                       $distinct_library_accounts[$account] = $library;
+                     return $distinct_library_accounts;
+                   });
   }
 
 
@@ -851,7 +857,9 @@ class Class_Bib extends Storm_Model_Abstract {
 
 
   public function getRedmineLoginOrKey() {
-    return ($login = $this->getRedmineLogin()) ? $login : $this->getRedmineApiKey();
+    return ($login = trim($this->getRedmineLogin()))
+      ? $login
+      : trim($this->getRedmineApiKey());
   }
 
 
diff --git a/library/Class/Exemplaire.php b/library/Class/Exemplaire.php
index 8fc0a97f611102d16bf3161dedf3d1f66c9069ea..9a9df0197a80f43a2151d39ed9668dff08ab2ae1 100644
--- a/library/Class/Exemplaire.php
+++ b/library/Class/Exemplaire.php
@@ -316,17 +316,28 @@ class Class_Exemplaire extends Storm_Model_Abstract {
   }
 
 
-  public function updateAvailabilityAndLocationFromSIGB() {
+  public function updateAvailabilityAndLocationFromSIGBAndSaveIfNeeded() {
     if (!$sigb_exemplaire = $this->getSigbExemplaire())
       return $this;
 
     if (!$sigb_exemplaire->isValid())
       return $this;
 
-    $this->setAnnexe($this->getCodeAnnexe());
-    return $this
-      ->setUrlForCurrentUser($sigb_exemplaire->getUrlForCurrentUser())
-      ->setIsAvailable($sigb_exemplaire->isDisponible());
+    $this->setUrlForCurrentUser($sigb_exemplaire->getUrlForCurrentUser());
+
+    $new_annexe = $this->getCodeAnnexe();
+    $new_availability = $sigb_exemplaire->isDisponible();
+
+    if (($new_annexe == $this->getAnnexe())
+        &&
+        ($new_availability  == $this->getIsAvailable()))
+      return $this;
+
+    $this
+      ->setAnnexe($new_annexe)
+      ->setIsAvailable($new_availability)
+      ->save();
+    return $this;
   }
 
 
diff --git a/library/Class/Notice.php b/library/Class/Notice.php
index d8d27dbad731309dfd73a8343480ec28c52c05bb..b36301fea9f91f9cf4f077fb8ae0ea4e348e15da 100644
--- a/library/Class/Notice.php
+++ b/library/Class/Notice.php
@@ -1824,49 +1824,9 @@ class Class_Notice extends Storm_Model_Abstract {
   }
 
 
-  protected function _fetchItemsToInjectInFacets() {
-    if ($this->isPeriodiqueArticle() && ($linked_record = $this->getLinkedSerialRecord()))
-      return $linked_record->getExemplaires();
-
-    if (!$this->isPeriodiqueTitle())
-      return $this->getExemplaires();
-
-    $clef_chapeau = Class_Indexation::getInstance()->codeAlphaTitre($this->getTitrePrincipal());
-    $records = $this->getLoader()->getAllNoticesByClefChapeau($clef_chapeau);
-    $record_ids = (new Storm_Model_Collection($records))->collect('id');
-
-    if ($record_ids->isEmpty())
-      return [];
-
-    return Class_Exemplaire::findAllBy(['id_notice' => $record_ids->getArrayCopy()]);
-  }
-
-
   public function updateFacetsFromExemplaires() {
-    $facets = Class_Notice_Facette::fromStringWithoutItemFacets($this->getFacettes());
-    $facets = array_map(function($facet) { return $facet->getCle(); },
-                        $facets);
-
-    $facets[] = Class_CodifTypeDoc::CODE_FACETTE . $this->getTypeDoc();
-
-    $is_novelty = false;
-    $date_nouveaute = '';
-    foreach($this->_fetchItemsToInjectInFacets() as $exemplaire) {
-      $facets = array_merge($facets, $exemplaire->getFacets());
-
-      $date_nouveaute = ($exemplaire->getDateNouveaute() > $date_nouveaute)
-        ? $exemplaire->getDateNouveaute()
-        : $date_nouveaute;
-
-      $is_novelty = $is_novelty || $exemplaire->isNouveaute();
-    }
-
-    if ($novelty_thesaurus = Class_CodifThesaurus::recordNoveltyFor($is_novelty))
-      $facets[] = $novelty_thesaurus->getFacetCode();
-
-    return $this
-      ->setFacettes(array_unique($facets))
-      ->setDateCreation($date_nouveaute ? ($date_nouveaute . ' 00:00:00') : null);
+    (new Class_Notice_Facettes($this))->updateFacetsFromExemplaires();
+    return $this;
   }
 
 
diff --git a/library/Class/Notice/Facettes.php b/library/Class/Notice/Facettes.php
index ae7ef602c2fdac5c1144f5fdbf3feca4b271908b..eb9ea2a6b30b49e76ddd431b7f9a63633f4fbcb6 100644
--- a/library/Class/Notice/Facettes.php
+++ b/library/Class/Notice/Facettes.php
@@ -21,6 +21,8 @@
 
 
 class Class_Notice_Facettes {
+  protected $_record;
+
   public static function mergeFacettes($old_facettes, $facettes) {
     return implode(' ', array_filter(array_unique(array_merge(explode(' ', $old_facettes), explode(' ', $facettes)))));
   }
@@ -29,5 +31,72 @@ class Class_Notice_Facettes {
   public static function removeFacettes($old_facettes, $facettes) {
     return implode(' ', array_filter(array_diff(explode(' ', $old_facettes), explode(' ', $facettes))));
   }
+
+
+  public function __construct($record) {
+    $this->_record = $record;
+  }
+
+
+  public function updateFacetsFromExemplaires() {
+    $facets = Class_Notice_Facette::fromStringWithoutItemFacets($this->_record->getFacettes());
+    $facets = array_map(function($facet) { return $facet->getCle(); },
+                        $facets);
+
+    $facets[] = Class_CodifTypeDoc::CODE_FACETTE . $this->_record->getTypeDoc();
+
+    $is_novelty = false;
+    $date_nouveaute = '';
+    foreach($this->_fetchItemsToInjectInFacets() as $exemplaire) {
+      $facets = array_merge($facets, $exemplaire->getFacets());
+
+      $date_nouveaute = ($exemplaire->getDateNouveaute() > $date_nouveaute)
+        ? $exemplaire->getDateNouveaute()
+        : $date_nouveaute;
+
+      $is_novelty = $is_novelty || $exemplaire->isNouveaute();
+    }
+
+    if ($novelty_thesaurus = Class_CodifThesaurus::recordNoveltyFor($is_novelty))
+      $facets[] = $novelty_thesaurus->getFacetCode();
+
+    return $this->_record
+      ->setFacettes(array_unique($facets))
+      ->setDateCreation($date_nouveaute ? ($date_nouveaute . ' 00:00:00') : null);
+  }
+
+
+  public function updateFacetsFromExemplairesAndSaveIfNeeded() {
+    $facets_before = $this->_record->getFacetCodes();
+    $creation_before = $this->_record->getDateCreation();
+    $this->updateFacetsFromExemplaires();
+
+    if (($facets_before == $this->_record->getFacetCodes())
+        &&
+        ($creation_before == $this->_record->getDateCreation()))
+      return $this;
+
+    $this->_record->save();
+    return $this;
+  }
+
+
+  protected function _fetchItemsToInjectInFacets() {
+    if ($this->_record->isPeriodiqueArticle() && ($linked_record = $this->_record->getLinkedSerialRecord()))
+      return $linked_record->getExemplaires();
+
+    if (!$this->_record->isPeriodiqueTitle())
+      return $this->_record->getExemplaires();
+
+    $clef_chapeau = Class_Indexation::getInstance()->codeAlphaTitre($this->_record->getTitrePrincipal());
+    $records = Class_Notice::getAllNoticesByClefChapeau($clef_chapeau);
+    $record_ids = (new Storm_Model_Collection($records))->collect('id');
+
+    if ($record_ids->isEmpty())
+      return [];
+
+    return Class_Exemplaire::findAllBy(['id_notice' => $record_ids->getArrayCopy()]);
+  }
+
 }
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/WebService/Redmine/Workflow/Afibre.php b/library/Class/WebService/Redmine/Workflow/Afibre.php
index f739596668a0ca38257911b6ce2e44bf4ddc9753..b3a8a8f9d77e2815ac769f2faee204f0b5b89c77 100644
--- a/library/Class/WebService/Redmine/Workflow/Afibre.php
+++ b/library/Class/WebService/Redmine/Workflow/Afibre.php
@@ -76,8 +76,7 @@ class Class_WebService_Redmine_Workflow_Afibre extends Class_WebService_Redmine_
     return count($issues
                  ->select(function($issue)
                           {
-                            return in_array($issue->getStatusId(), [static::QUESTION_CLIENT,
-                                                                    static::A_TESTER]);
+                            return in_array($issue->getStatusId(), [static::QUESTION_CLIENT]);
                           }));
   }
-}
\ No newline at end of file
+}
diff --git a/library/ZendAfi/Controller/Action/Helper/ViewRenderer.php b/library/ZendAfi/Controller/Action/Helper/ViewRenderer.php
index 9dce5cfc797599ee209d63fde272993e89913816..0bec9b470e4e9c0b104191be8e059f46f1345efe 100644
--- a/library/ZendAfi/Controller/Action/Helper/ViewRenderer.php
+++ b/library/ZendAfi/Controller/Action/Helper/ViewRenderer.php
@@ -54,9 +54,14 @@ class ZendAfi_Controller_Action_Helper_ViewRenderer extends Zend_Controller_Acti
 
     $this->view->_current_module = $this->getRequest()->getParam("current_module");
 
+
+    if (!Class_Template::current()->isLegacy())
+      return;
+
     $template = isset($this->view->_current_module["preferences"]["boite"])
       ? $this->view->_current_module["preferences"]["boite"]
       : null;
+
     $this->view->initBoite($template);
   }
 
diff --git a/library/ZendAfi/Controller/Plugin/XHProfile.php b/library/ZendAfi/Controller/Plugin/XHProfile.php
index 8b8ee018b749ab05f07c8ee71c61defa0a643d67..0c8a2a04de11189b444661d7f5ef0fb069e40fd2 100644
--- a/library/ZendAfi/Controller/Plugin/XHProfile.php
+++ b/library/ZendAfi/Controller/Plugin/XHProfile.php
@@ -45,6 +45,8 @@ class ZendAfi_Controller_Plugin_XHProfile extends Zend_Controller_Plugin_Abstrac
                             .appendTo(\'body .menu_admin_front .dev_tools\')');
 
     $this->_enabled = true;
+
+    Zend_Controller_Action_HelperBroker::getStaticHelper('redirector')->setExit(false);
     xhprof_enable();
   }
 
@@ -60,6 +62,7 @@ class ZendAfi_Controller_Plugin_XHProfile extends Zend_Controller_Plugin_Abstrac
     $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");
 
     $this->_response
+      ->setHeader('X-XHPROF-RUN', $run_id)
       ->setRedirect(BASE_URL."/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n")
       ->clearBody();
   }
diff --git a/library/ZendAfi/View/Helper/Admin/FrontNavEntries.php b/library/ZendAfi/View/Helper/Admin/FrontNavEntries.php
index 3ef0c690d775d88329271c9ae453b3b40b127eeb..6abc6bfa17c01a29d55756a3433484494d649f74 100644
--- a/library/ZendAfi/View/Helper/Admin/FrontNavEntries.php
+++ b/library/ZendAfi/View/Helper/Admin/FrontNavEntries.php
@@ -62,7 +62,7 @@ class ZendAfi_View_Helper_Admin_FrontNavEntries extends ZendAfi_View_Helper_Base
                                          Class_Admin_Skin::current()->renderMenuIconOn('redmine',
                                                                                        $this->view,
                                                                                        ['alt' => 'redmine'])
-                                         . $this->_('Assistance (%d)', Class_WebService_Redmine_Workflow::current()->getNumberOfIssuesNotification()),
+                                         . $this->_('Assistance'),
                                          ['class' => 'menu_admin_front_anchor',
                                           'title' => $this->_('Accéder à l\'assistance')]);
 
@@ -432,4 +432,4 @@ class ZendAfi_View_Helper_Admin_FrontNavEntries extends ZendAfi_View_Helper_Base
     return $this->view->renderForm($form->setAction('/'),
                                    ZendAfi_View_Helper_RenderForm::NO_BUTTONS);
   }
-}
\ No newline at end of file
+}
diff --git a/library/startup.php b/library/startup.php
index 9fbaaf932fde0e9d20e846aa2f7ebc3fed4eae32..8c3d8977396ccdcd8dd3710b045eba02144e6202 100644
--- a/library/startup.php
+++ b/library/startup.php
@@ -136,10 +136,10 @@ class Bokeh_Engine {
     defineConstant('URL_CAPTCHA', BASE_URL . '/temp/');
     defineConstant('PATH_CAPTCHA', PATH_TEMP);
     defineConstant('CACHE_LIFETIME', 3600);
+    defineConstant('CACHE_ENABLE', true);
     defineConstant('MEMCACHED_ENABLE', false);
     defineConstant('MEMCACHED_HOST', 'localhost');
     defineConstant('MEMCACHED_PORT', '11211');
-
     defineConstant('IMAGE_MAGICK_PATH', 'convert');
     defineConstant('THUMBNAIL_FIT_WIDTH_HEIGHT', '500');
 
@@ -171,7 +171,7 @@ class Bokeh_Engine {
   public function setupCache() {
     $frontendOptions = ['lifetime' => CACHE_LIFETIME, // durée du cache: 1h
                         'automatic_serialization' => false,
-                        'caching' => true];
+                        'caching' => CACHE_ENABLE];
 
     $use_memcached = (MEMCACHED_ENABLE === true);
     $backendOptions = $use_memcached
@@ -421,4 +421,4 @@ function setupOpac() {
   return (new Bokeh_Engine())
     ->powerOn()
     ->getFrontController();
-}
\ No newline at end of file
+}
diff --git a/library/templates/Chili/Library/Wrapper/Record.php b/library/templates/Chili/Library/Wrapper/Record.php
index 3b20172f2d7d5e2ba121c09d31fd99474bff6d98..5583ca30669e5db68d1df83950933ee7a9f6f30c 100644
--- a/library/templates/Chili/Library/Wrapper/Record.php
+++ b/library/templates/Chili/Library/Wrapper/Record.php
@@ -59,8 +59,8 @@ class Chili_Library_Wrapper_Record extends Intonation_Library_View_Wrapper_Recor
 
 
   protected function _addHoldLink($actions) {
-      $actions [] = (new Intonation_Library_Record($this->_model))
-        ->getFirstItemHoldLink($this->_view);
+    $actions [] = (new Intonation_Library_Record($this->_model))
+      ->getFirstItemHoldLink($this->_view);
 
     return $actions;
   }
diff --git a/library/templates/Intonation/Library/Record/Items.php b/library/templates/Intonation/Library/Record/Items.php
index f04cc34a74c6571ead2392434f5dcebd2265b319..f47d21baf9e56d8f9713b1be985657de8c81534c 100644
--- a/library/templates/Intonation/Library/Record/Items.php
+++ b/library/templates/Intonation/Library/Record/Items.php
@@ -39,10 +39,8 @@ class Intonation_Library_Record_Items {
 
 
   public function findAll() {
-    if (!$this->_items) {
+    if (!$this->_items)
       $this->_items = $this->_findItems();
-      $this->_updateRecordsFacetsFromItems();
-    }
 
     return $this->_items;
   }
@@ -51,22 +49,12 @@ class Intonation_Library_Record_Items {
   protected function _getItemsFromSIGB($items) {
     foreach($items as $item)
       $item
-      ->updateAvailabilityAndLocationFromSIGB()
-      ->save();
+      ->updateAvailabilityAndLocationFromSIGBAndSaveIfNeeded();
 
     return (new Class_CommSigb())->getDispoExemplaires($items);
   }
 
 
-  protected function _updateRecordsFacetsFromItems() {
-    foreach($this->_records as $record)
-      $record
-      ->updateFacetsFromExemplaires()
-      ->save();
-    return $this;
-  }
-
-
   protected function _getRecordIds() {
     return array_map(function($record)
                      {
diff --git a/tests/application/modules/admin/controllers/RedmineControllerTest.php b/tests/application/modules/admin/controllers/RedmineControllerTest.php
index 37202f424fc78b1450274b69acec060c0dcd3668..b9e18909b535286310faa9bbc98072bb727e3e0f 100644
--- a/tests/application/modules/admin/controllers/RedmineControllerTest.php
+++ b/tests/application/modules/admin/controllers/RedmineControllerTest.php
@@ -141,6 +141,7 @@ class Admin_RedmineControllerTestActionWithEmptyBibTest extends Admin_RedmineCon
 
 
 
+
 abstract class Admin_RedmineControllerWithApiTestCase extends Admin_RedmineControllerWithAnnecyLibraryTestCase {
   protected $_redmine_api;
 
@@ -308,8 +309,8 @@ class Admin_RedmineControllerIndexTest extends Admin_RedmineControllerWithApiTes
 
 
   /** @test */
-  public function menuHorizontalShouldContainsTwoIssues() {
-    $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[contains(@title, "demandes de support")]//span[@class="menu_info"]', '2', $this->_response->getBody());
+  public function menuHorizontalShouldContainsOneIssueClientQuestion() {
+    $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[contains(@title, "demandes de support")]//span[@class="menu_info"]', '1');
   }
 }
 
@@ -334,7 +335,7 @@ class Admin_RedmineControllerCacheTest extends Admin_RedmineControllerWithApiTes
   public function onAdminIndexMenuHorizontalShouldGetResultFromCache() {
     $this->dispatch('/admin/index/index');
 
-    $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[contains(@title, "demandes de support")]//span[@class="menu_info"]', '2');
+    $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[contains(@title, "demandes de support")]//span[@class="menu_info"]', '1');
   }
 
 
@@ -343,7 +344,7 @@ class Admin_RedmineControllerCacheTest extends Admin_RedmineControllerWithApiTes
     Class_WebService_Redmine_Issues::forUser(Class_Users::getIdentity());
     $this->dispatch('/admin/index/index');
 
-    $this->assertNotXPathContentContains('//div[contains(@class, "barre_nav")]//a[@title="Assistance"]//span[@class="menu_info"]', '1', $this->_response->getBody());
+    $this->assertNotXPathContentContains('//div[contains(@class, "barre_nav")]//a[@title="Assistance"]//span[@class="menu_info"]', '1');
   }
 }
 
@@ -384,12 +385,13 @@ class Admin_RedmineControllerIndexActionWithModoBibTest extends Admin_RedmineCon
 
 
 
+
 class Admin_RedmineControllerWithMultipleAccountTest extends Admin_RedmineControllerWithApiTestCase {
 
   public function setUp() {
     parent::setUp();
 
-    $chambery = $this->fixture('Class_Bib',
+    $chambery = $this->fixture(Class_Bib::class,
                                ['id' => 2,
                                 'libelle' => 'Mediatheque de Chambéry',
                                 'redmine_api_key' => '987654321',
@@ -397,6 +399,14 @@ class Admin_RedmineControllerWithMultipleAccountTest extends Admin_RedmineContro
                                 'redmine_password' => 'late',
                                 'redmine_user_id' => 12]);
 
+    $la_motte_same_account = $this->fixture(Class_Bib::class,
+                                            ['id' => 3,
+                                             'libelle' => 'Mediathèque de La Motte',
+                                             'redmine_api_key' => '987654321',
+                                             'redmine_login' => 'chambery@customer',
+                                             'redmine_password' => 'late',
+                                             'redmine_user_id' => 12]);
+
     Class_Users::getIdentity()->setBib(null);
     Class_Users::getIdentity()->setRedmineLibrary(null);
 
@@ -417,6 +427,20 @@ class Admin_RedmineControllerWithMultipleAccountTest extends Admin_RedmineContro
   }
 
 
+  /** @test */
+  public function laMotteShouldNotBePresentInLibrarySelector() {
+    $this->assertNotXPathContentContains('//select[@name="library"]//option',
+                                         'Motte');
+  }
+
+
+  /** @test */
+  public function menuHorizontalShouldContainsTwoIssuesOneAnnecyOneChamberyNoLaMotte() {
+    $this->assertXPathContentContains('//div[contains(@class, "barre_nav")]//a[contains(@title, "demandes de support")]//span[@class="menu_info"]',
+                                      '2');
+  }
+
+
   /** @test */
   public function urserRedmineLibShouldBeNull() {
     $this->assertNull(Class_Users::getIdentity()->getRedmineLibrary());
@@ -431,6 +455,7 @@ class Admin_RedmineControllerWithMultipleAccountTest extends Admin_RedmineContro
 
 
 
+
 abstract class Admin_RedmineControllerFixtureAbstractTest extends Admin_RedmineControllerWithApiTestCase {
   public function setUp() {
     parent::setUp();
@@ -943,4 +968,4 @@ class Admin_RedmineControllerTestActionDownloadEmptyAttachmentTest
   public function shouldRedirect() {
     $this->assertRedirect();
   }
-}
\ No newline at end of file
+}
diff --git a/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php b/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php
index 3dcac82d9914c7f3ed43a95bbb1507d7c88b69e1..09f176d8cda985718b58f7eb49e12c3943970ea9 100644
--- a/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php
+++ b/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php
@@ -832,9 +832,11 @@ class NoticeAjaxControllerExemplairesWithOtherAnnexTestCase extends AbstractCont
 
   }
 
+
   /** @test */
   public function facetsShouldBeUpdatedWithAnnex21() {
     $this->dispatch('noticeajax/exemplaires/id/123');
+    Class_Notice::clearCache();
     $this->assertEquals('D78092 A3029 A9751 A117014 A117015 M37414 G464 HNNNN0002 HNANA0002 T0 B6 SA9 Eemplacement de test Y21 V6 HNRNR0001',
                         Class_notice::find(123)->getFacettes());
   }
diff --git a/tests/library/Class/WebService/SIGB/CdScriptTest.php b/tests/library/Class/WebService/SIGB/CdScriptTest.php
index 014575b65cf2bab1d1c46b58c2f2e2f298393f99..fec9d9f6ed5323489036d8e72f1120942ac366ec 100644
--- a/tests/library/Class/WebService/SIGB/CdScriptTest.php
+++ b/tests/library/Class/WebService/SIGB/CdScriptTest.php
@@ -111,9 +111,9 @@ class CdScriptServiceTest extends CdScriptTestCase {
 
 
   /** @test */
-  public function onUpdateAvailabilityFromSIGBShouldItemShouldUpdateExternalUrlWithJumel() {
+  public function onUpdateAvailabilityFromSIGBItemShouldUpdateExternalUrlWithJumel() {
     $this->assertContains('jumel39',
-                          $this->_le_kiosque->updateAvailabilityAndLocationFromSIGB()->getExternalUrl());
+                          $this->_le_kiosque->updateAvailabilityAndLocationFromSIGBAndSaveIfNeeded()->getExternalUrl());
   }