Skip to content
Snippets Groups Projects
Commit dab06bcb authored by efalcy's avatar efalcy
Browse files

HOTLINE #80947 : Add option so that external calendar do not overwrite locally...

HOTLINE #80947 : Add option so that external calendar do not overwrite locally modified eventsdev#79874 : logout button
parent 6222af7f
Branches
Tags
3 merge requests!3297WIP: Master,!3047Hotline,!3013Hotline%2380947 agenda externe options
Pipeline #6383 passed with stage
in 33 minutes and 11 seconds
- ticket #80947 : Agenda externe : ne met pas à jour les articles déjà présent dans la base.
\ No newline at end of file
- ticket #80947 : Agenda externe: ajout d'un option permettant de ne pas mettre à jour les évènements modifiés localement lors de l'import d'un calendrier externe.
\ No newline at end of file
......@@ -376,6 +376,7 @@ class Class_AdminVarLoader extends Storm_Model_Loader {
'CUSTOM_FIELDS_REPORT' => Class_AdminVar_Meta::newOnOff($this->_('Activation des rapports statistiques sur les champs personnalisés')),
'WEBSERVICE_TEST' => Class_AdminVar_Meta::newOnOff($this->_('Activation des tests de webservices')),
'IMPORT_AVIS_OPAC2' => Class_AdminVar_Meta::newOnOff($this->_('Activation de l\'import des avis de l\'opac2')),
'AGENDA_KEEP_LOCAL_CONTENT' => Class_AdminVar_Meta::newOnOff($this->_('Agenda externe : conserver les évenements modifiés localement'))
];
}
......
......@@ -27,7 +27,9 @@ class Class_ExternalAgendaLoader extends Storm_Model_Loader {
$results = $agenda->import();
$logger->log($agenda->getLabel().":\n");
$logger->log($agenda->_("Nombre d\'événements créés : %s\n",count($results['new'])));
$logger->log($agenda->_("Nombre d\'événements non mis à jour : %s\n",count($results['update'])));
Class_AdminVar::get('AGENDA_KEEP_LOCAL_CONTENT')
? $logger->log($agenda->_("Nombre d\'événements non mis à jour : %s\n",count($results['update'])))
: $logger->log($agenda->_("Nombre d\'événements mis à jour : %s\n",count($results['update'])));
}
}
}
......@@ -63,6 +65,8 @@ class Class_ExternalAgenda extends Storm_Model_Abstract {
$results['new'] = $events->select('isNew');
$results['update'] = $events->reject('isNew');
$results['new']->eachDo('save');
if (!Class_AdminVar::get('AGENDA_KEEP_LOCAL_CONTENT'))
$results['update']->eachDo('save');
return $results;
}
......
......@@ -98,7 +98,7 @@ class Class_Batch_ExternalAgendasBatchSimpleTest extends Class_Batch_ExternalAge
/** @test */
public function logShouldDisplayNumberOfCreatedEvents() {
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 4\nNombre d\'événements non mis à jour : 0\n",$this->_log);
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 4\nNombre d\'événements mis à jour : 0\n",$this->_log);
}
}
......@@ -160,27 +160,42 @@ class Class_Batch_ExternalAgendasBatchRewriteTest extends Class_Batch_ExternalAg
->whenCalled('open_url')
->with('http://external.agenda.com/export?type=ics')
->answers(file_get_contents(__DIR__.'/ical-event-second.ics')));
Class_AdminVar::set("AGENDA_KEEP_LOCAL_CONTENT",1);
$this->_batch = new Class_Batch_ExternalAgenda();
$this->_batch->setLogger($this->getLogger());
$this->_batch->run();
}
/** @test */
public function labelShouldBeHarvestExternalAgenda() {
$this->_batch->run();
$this->assertEquals('Moissonner les agendas externes', $this->_batch->getLabel());
}
/** @test */
public function logShouldDisplayNumberOfCreatedEvents() {
$this->_batch->run();
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 3\nNombre d\'événements non mis à jour : 1\n",$this->_log);
}
/** @test */
public function articleJeuxCooperatifShouldKeepModifiedContent() {
$this->_batch->run();
Class_Article::clearCache();
$this->assertEquals('changement de contenu', Class_Article::find(1)->getContenu());
}
/** @test */
public function withOptionOverwriteLocalContentShouldUpdateArticle() {
Class_AdminVar::set("AGENDA_KEEP_LOCAL_CONTENT",0);
$this->_batch->run();
Class_Article::clearCache();
$this->assertContains("animé par l'école et son quartier Parents/Enfants",Class_Article::find(1)->getContenu());
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 3\nNombre d\'événements mis à jour : 1\n",$this->_log);
}
}
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