Skip to content
Snippets Groups Projects
Commit 206c0f0e authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

Merge branch 'hotline#140590_bug_horaire_import_agenda' into 'hotline'

hotline #140590 : fix timezone handling in articles timings

See merge request !4184
parents 52954832 f3ea9baf
Branches
Tags
3 merge requests!4186Master,!4185Hotline,!4184hotline #140590 : fix timezone handling in articles timings
Pipeline #14582 failed with stage
in 1 hour, 10 minutes, and 14 seconds
- ticket #140590 : Articles : correction de la prise en compte du fuseau horaire lors de l'import d'agenda OpenAgenda en mode horaires multiples
\ No newline at end of file
...@@ -79,11 +79,16 @@ abstract class EventBuilder_Abstract { ...@@ -79,11 +79,16 @@ abstract class EventBuilder_Abstract {
.$event->getInfosTag() .$event->getInfosTag()
.$event->getInscriptionsTag()) .$event->getInscriptionsTag())
->setDescription($event->getImageTag().'<p>'.$event->getString('description').'</p>') ->setDescription($event->getImageTag().'<p>'.$event->getString('description').'</p>')
->setDateMaj($event->getUpdatedAt()) ->setDateMaj($this->_localizeDateTime($event->getUpdatedAt()))
->setTags(implode(';', $event->getKeywords())) ->setTags(implode(';', $event->getKeywords()))
->setLieu($event->getLocation()) ->setLieu($event->getLocation())
->setIdOrigine($event->getUid()); ->setIdOrigine($event->getUid());
} }
protected function _localizeDateTime($value) {
return date('Y-m-d H:i', strtotime($value));
}
} }
...@@ -103,8 +108,8 @@ class Articles extends EventBuilder_Abstract { ...@@ -103,8 +108,8 @@ class Articles extends EventBuilder_Abstract {
protected function _buildArticleForTiming($event, $timing, $open_agenda) { protected function _buildArticleForTiming($event, $timing, $open_agenda) {
return $this->_buildArticle($event, $open_agenda) return $this->_buildArticle($event, $open_agenda)
->setIdOrigine($event->getUid($timing['start'])) ->setIdOrigine($event->getUid($timing['start']))
->setEventsDebut(date('Y-m-d H:i', strtotime($timing['start']))) ->setEventsDebut($this->_localizeDateTime($timing['start']))
->setEventsFin(date('Y-m-d H:i', strtotime($timing['end']))); ->setEventsFin($this->_localizeDateTime($timing['end']));
} }
} }
...@@ -117,9 +122,9 @@ class Timings extends EventBuilder_Abstract { ...@@ -117,9 +122,9 @@ class Timings extends EventBuilder_Abstract {
->setIdOrigine($event->getUid()); ->setIdOrigine($event->getUid());
foreach($event->get('timings') as $timing) foreach($event->get('timings') as $timing)
$article->addEventTiming((new Class_Article_EventTiming()) $article->addEventTiming((new Class_Article_EventTiming)
->setStart($timing['start']) ->setStart($this->_localizeDateTime($timing['start']))
->setEnd($timing['end'])); ->setEnd($this->_localizeDateTime($timing['end'])));
$open_agenda->appendEvent($article); $open_agenda->appendEvent($article);
return $this; return $this;
......
...@@ -61,11 +61,11 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge ...@@ -61,11 +61,11 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
/** @test */ /** @test */
public function firstArticleUpdatedAtShouldBe20191126() { public function firstArticleUpdatedAtShouldBe20191126() {
$this->assertEquals('2019-11-26T14:12:06.000Z', Class_Article::find(1)->getDateMaj()); $this->assertEquals('2019-11-26 15:12', Class_Article::find(1)->getDateMaj());
} }
/** @test */ /** @test */
public function firstArticleImageShouldContainsHTMLAndImage() { public function firstArticleImageShouldContainsHTMLAndImage() {
$this->assertEquals('<figure><img src="https://cibul.s3.amazonaws.com/9c3729cce33140c5a011056c8168ec5b.base.image.jpg" alt=""/><figcaption>Credits : moi</figcaption></figure><p>Voyons ça dans une session de coding dojo</p><p>Infos pratiques :</p><dl><dt>Conditions</dt><dd>être geek</dd><dt>Âge</dt><dd>de 6 à 99 ans</dd></dl><p>Pour s\'inscrire :</p><dl><dt>Courriel</dt><dd><a href="mailto:llaffont@afi-sa.fr">llaffont@afi-sa.fr</a></dd><dt>Téléphone</dt><dd><a href="tel:0123456789">0123456789</a></dd><dt>Site</dt><dd><a href="https://www.website.org">https://www.website.org</a></dd><dt>Lien</dt><dd><a href="https://registration.website.org/">https://registration.website.org/</a></dd></dl>', $this->assertEquals('<figure><img src="https://cibul.s3.amazonaws.com/9c3729cce33140c5a011056c8168ec5b.base.image.jpg" alt=""/><figcaption>Credits : moi</figcaption></figure><p>Voyons ça dans une session de coding dojo</p><p>Infos pratiques :</p><dl><dt>Conditions</dt><dd>être geek</dd><dt>Âge</dt><dd>de 6 à 99 ans</dd></dl><p>Pour s\'inscrire :</p><dl><dt>Courriel</dt><dd><a href="mailto:llaffont@afi-sa.fr">llaffont@afi-sa.fr</a></dd><dt>Téléphone</dt><dd><a href="tel:0123456789">0123456789</a></dd><dt>Site</dt><dd><a href="https://www.website.org">https://www.website.org</a></dd><dt>Lien</dt><dd><a href="https://registration.website.org/">https://registration.website.org/</a></dd></dl>',
Class_Article::find(1)->getContenu()); Class_Article::find(1)->getContenu());
...@@ -81,21 +81,20 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge ...@@ -81,21 +81,20 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
/** @test */ /** @test */
public function firstArticleShouldHaveThreeTimings() { public function firstArticleShouldHaveThreeTimings() {
$this->assertEquals([ $this->assertEquals([
['start' => '2019-11-25 09:30', ['start' => '2019-11-25 10:30',
'end' => '2019-11-25 11:30', 'end' => '2019-11-25 12:30',
'article_id' => 1, 'article_id' => 1,
'id' => 1], 'id' => 1],
['start' => '2019-11-29 09:00', ['start' => '2019-11-29 10:00',
'end' => '2019-11-29 11:00', 'end' => '2019-11-29 12:00',
'article_id' => 1, 'article_id' => 1,
'id' => 2], 'id' => 2],
['start' => '2019-12-01 09:30', ['start' => '2019-12-01 10:30',
'end' => '2019-12-01 10:30', 'end' => '2019-12-01 11:30',
'article_id' => 1, 'article_id' => 1,
'id' => 3]], 'id' => 3]],
$this->_dumpArticleTimings(1)); $this->_dumpArticleTimings(1));
} }
...@@ -105,23 +104,22 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge ...@@ -105,23 +104,22 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
public function onSecondImportArticleShouldStillHaveThreeTimings() { public function onSecondImportArticleShouldStillHaveThreeTimings() {
Class_ExternalAgenda::find(12)->import(); Class_ExternalAgenda::find(12)->import();
$this->assertEquals([ $this->assertEquals([
['start' => '2019-11-25 09:30', ['start' => '2019-11-25 10:30',
'end' => '2019-11-25 11:30', 'end' => '2019-11-25 12:30',
'article_id' => 1, 'article_id' => 1,
'id' => 9], 'id' => 9],
['start' => '2019-11-29 09:00', ['start' => '2019-11-29 10:00',
'end' => '2019-11-29 11:00', 'end' => '2019-11-29 12:00',
'article_id' => 1, 'article_id' => 1,
'id' => 10], 'id' => 10],
['start' => '2019-12-01 09:30', ['start' => '2019-12-01 10:30',
'end' => '2019-12-01 10:30', 'end' => '2019-12-01 11:30',
'article_id' => 1, 'article_id' => 1,
'id' => 11]], 'id' => 11]
],
$this->_dumpArticleTimings(1)); $this->_dumpArticleTimings(1));
} }
...@@ -134,16 +132,16 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge ...@@ -134,16 +132,16 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
/** @test */ /** @test */
public function articleTwoShouldHaveTimingsSameAsOrigine() { public function articleTwoShouldHaveTimingsSameAsOrigine() {
$this->assertEquals([ $this->assertEquals([
['start' => '2019-11-25 10:00', ['start' => '2019-11-25 11:00',
'end' => '2019-11-25 10:30', 'end' => '2019-11-25 11:30',
'article_id' => 2, 'article_id' => 2,
'id' => 4], 'id' => 4],
['start' => '2019-12-02 10:00',
'end' => '2019-12-02 10:30', ['start' => '2019-12-02 11:00',
'end' => '2019-12-02 11:30',
'article_id' => 2, 'article_id' => 2,
'id' => 5] 'id' => 5]
], ],
$this->_dumpArticleTimings(2)); $this->_dumpArticleTimings(2));
} }
} }
...@@ -76,12 +76,13 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -76,12 +76,13 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
public function setup() { public function setup() {
parent::setup(); parent::setup();
Class_ExternalAgenda::find(12)->import(); Class_ExternalAgenda::find(12)->import();
Class_Article::clearCache();
} }
/** @test */ /** @test */
public function countArticlesShouldBeSixteen() { public function countArticlesShouldBeEight() {
$this->assertCount(16, Class_Article::findAll()); $this->assertCount(8, Class_Article::findAll());
} }
...@@ -92,15 +93,15 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -92,15 +93,15 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
/** @test */ /** @test */
public function firstArticleDateMajShouldBeEmpty() { public function firstArticleDateMajShouldBe2019_11_26_15_12() {
$this->assertEquals('', Class_Article::find(1)->getDateMaj()); $this->assertEquals('2019-11-26 15:12', Class_Article::find(1)->getDateMaj());
} }
/** @test */ /** @test */
public function afterSecondImportCountArticlesShouldRemainsSixteen() { public function afterSecondImportCountArticlesShouldRemainsEight() {
Class_ExternalAgenda::find(12)->import(); Class_ExternalAgenda::find(12)->import();
$this->assertCount(16, Class_Article::findAll()); $this->assertCount(8, Class_Article::findAll());
} }
...@@ -115,7 +116,7 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -115,7 +116,7 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
] ]
); );
Class_ExternalAgenda::find(12)->import(); Class_ExternalAgenda::find(12)->import();
$this->assertCount(16, Class_Article::findAll()); $this->assertCount(8, Class_Article::findAll());
$this->assertNull(Class_Article::find(234)); $this->assertNull(Class_Article::find(234));
} }
...@@ -132,7 +133,7 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -132,7 +133,7 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
] ]
); );
Class_ExternalAgenda::find(12)->import(); Class_ExternalAgenda::find(12)->import();
$this->assertCount(17, Class_Article::findAll()); $this->assertCount(9, Class_Article::findAll());
$this->assertNotNull(Class_Article::find(234)); $this->assertNotNull(Class_Article::find(234));
} }
...@@ -186,7 +187,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -186,7 +187,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
} }
/** @test */ /** @test */
public function numberOfLocationsShouldBeTwo() { public function numberOfLocationsShouldBeTwo() {
$this->assertCount(2, Class_Lieu::findAll()); $this->assertCount(2, Class_Lieu::findAll());
...@@ -210,7 +210,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -210,7 +210,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
} }
/** @test */ /** @test */
public function secondLocationShouldBeAFIAnnecy() { public function secondLocationShouldBeAFIAnnecy() {
$this->assertEquals(['id' => 2, $this->assertEquals(['id' => 2,
...@@ -228,7 +227,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor ...@@ -228,7 +227,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
} }
/** @test */ /** @test */
public function firstArticleImageShouldContainsHTMLAndImage() { public function firstArticleImageShouldContainsHTMLAndImage() {
$this->assertEquals('<figure><img src="https://cibul.s3.amazonaws.com/9c3729cce33140c5a011056c8168ec5b.base.image.jpg" alt=""/><figcaption>Credits : moi</figcaption></figure><p>Voyons ça dans une session de coding dojo</p><p>Infos pratiques :</p><dl><dt>Conditions</dt><dd>être geek</dd><dt>Âge</dt><dd>de 6 à 99 ans</dd></dl><p>Pour s\'inscrire :</p><dl><dt>Courriel</dt><dd><a href="mailto:llaffont@afi-sa.fr">llaffont@afi-sa.fr</a></dd><dt>Téléphone</dt><dd><a href="tel:0123456789">0123456789</a></dd><dt>Site</dt><dd><a href="https://www.website.org">https://www.website.org</a></dd><dt>Lien</dt><dd><a href="https://registration.website.org/">https://registration.website.org/</a></dd></dl>', $this->assertEquals('<figure><img src="https://cibul.s3.amazonaws.com/9c3729cce33140c5a011056c8168ec5b.base.image.jpg" alt=""/><figcaption>Credits : moi</figcaption></figure><p>Voyons ça dans une session de coding dojo</p><p>Infos pratiques :</p><dl><dt>Conditions</dt><dd>être geek</dd><dt>Âge</dt><dd>de 6 à 99 ans</dd></dl><p>Pour s\'inscrire :</p><dl><dt>Courriel</dt><dd><a href="mailto:llaffont@afi-sa.fr">llaffont@afi-sa.fr</a></dd><dt>Téléphone</dt><dd><a href="tel:0123456789">0123456789</a></dd><dt>Site</dt><dd><a href="https://www.website.org">https://www.website.org</a></dd><dt>Lien</dt><dd><a href="https://registration.website.org/">https://registration.website.org/</a></dd></dl>',
......
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