diff --git a/VERSIONS_WIP/180967 b/VERSIONS_WIP/180967 new file mode 100644 index 0000000000000000000000000000000000000000..230e9e9d3f8e3230e2035eb5ca032094ae3ed3c7 --- /dev/null +++ b/VERSIONS_WIP/180967 @@ -0,0 +1 @@ + - fonctionnalité #180967 : Ressource Numérique : Cafeyn : Ajout d'une variable pour activerl'import total \ No newline at end of file diff --git a/library/digital_resources/Cafeyn/Config.php b/library/digital_resources/Cafeyn/Config.php index b612abc306345c29b5b067e2d5aaef2d5cb8aad3..0b51941ab24d872a40157192153ccfeff7411497 100644 --- a/library/digital_resources/Cafeyn/Config.php +++ b/library/digital_resources/Cafeyn/Config.php @@ -48,6 +48,7 @@ class Cafeyn_Config extends Class_DigitalResource_Config { 'API_PASSWORD' => Class_AdminVar_Meta::newDefault($this->_('Mot de passe API fourni par Cafeyn'))->bePrivate(), 'HARVEST_URL' => Class_AdminVar_Meta::newDefault($this->_('URL de moissonage de la ressource Cafeyn'))->bePrivate(), 'BATCH_UPDATE_NOTICE' => Class_AdminVar_Meta::newOnOff($this->_('Activer la mise à jour systématique des notices lors du moissonnage'),['value' => 1])->bePrivate(), + 'TOTAL_IMPORT'=> Class_AdminVar_Meta::newOnOff($this->_('Activer l\'import total: suppression de toutes les archives'),['value' => 0 ])->bePrivate(), 'SSO_URL' => Class_AdminVar_Meta::newDefault($this->_('URL SSO de la plateforme Cafeyn'), ['value' => 'https://www.cafeyn.co/fr/externallogin'])->bePrivate(), ] diff --git a/library/digital_resources/Cafeyn/Service.php b/library/digital_resources/Cafeyn/Service.php index d0140bfc7e6444fd24e652371766a034ddb38829..5de001eb51e980e88fe85240df7bda6a22b8c50d 100644 --- a/library/digital_resources/Cafeyn/Service.php +++ b/library/digital_resources/Cafeyn/Service.php @@ -47,7 +47,9 @@ class Cafeyn_Service extends Class_DigitalResource_Service { protected function _deleteNonHarvested() { - return $this->_deleteNonHarvestedAlbums(); + return $this->_config->getAdminVar('TOTAL_IMPORT') + ? $this->_deleteNonHarvestedAlbums() + : $this; } diff --git a/library/digital_resources/Cafeyn/tests/CafeynTest.php b/library/digital_resources/Cafeyn/tests/CafeynTest.php index 9b2a07ff2c25dffe5ffadc264c7a85bc03974270..99d000b32fca03244cb47241cd0c34fc115ce751 100644 --- a/library/digital_resources/Cafeyn/tests/CafeynTest.php +++ b/library/digital_resources/Cafeyn/tests/CafeynTest.php @@ -355,12 +355,12 @@ class CafeynHarvestDisableUpdateTest extends CafeynServiceTestCase { class CafeynHarvestUpdateTest extends CafeynServiceTestCase { public function setUp() { parent::setUp(); - Class_Album::find(20)->index(); } public function addFixtures() { + Class_AdminVar::set('Cafeyn_TOTAL_IMPORT', true); $album = $this->fixture(Class_Album::class, ['id' => 20, 'titre' => '10 moutons', @@ -410,3 +410,34 @@ class CafeynHarvestUpdateTest extends CafeynServiceTestCase { $this->assertNull(Class_Album::find(25)); } } + + + + +class CafeynHarvestUpdateIncrementialTest extends CafeynServiceTestCase { + public function setUp() { + parent::setUp(); + } + + + public function addFixtures() { + Class_AdminVar::set('Cafeyn_TOTAL_IMPORT', false); + $this->fixture(Class_Album::class, + ['id' => 25, + 'titre' => 'Toto', + 'visible' => 1, + 'status' => 3, + 'id_origine' => '666:7', + 'url_origine' => 'https://cafeyn.co/', + 'type_doc_id' => 'Cafeyn' + ]); + + return $this; + } + + + /** @test */ + public function AlbumTotoShouldStillExist() { + $this->assertEquals('Toto', Class_Album::find(25)->getTitre()); + } +}