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 {
.$event->getInfosTag()
.$event->getInscriptionsTag())
->setDescription($event->getImageTag().'<p>'.$event->getString('description').'</p>')
->setDateMaj($event->getUpdatedAt())
->setDateMaj($this->_localizeDateTime($event->getUpdatedAt()))
->setTags(implode(';', $event->getKeywords()))
->setLieu($event->getLocation())
->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 {
protected function _buildArticleForTiming($event, $timing, $open_agenda) {
return $this->_buildArticle($event, $open_agenda)
->setIdOrigine($event->getUid($timing['start']))
->setEventsDebut(date('Y-m-d H:i', strtotime($timing['start'])))
->setEventsFin(date('Y-m-d H:i', strtotime($timing['end'])));
->setEventsDebut($this->_localizeDateTime($timing['start']))
->setEventsFin($this->_localizeDateTime($timing['end']));
}
}
......@@ -117,9 +122,9 @@ class Timings extends EventBuilder_Abstract {
->setIdOrigine($event->getUid());
foreach($event->get('timings') as $timing)
$article->addEventTiming((new Class_Article_EventTiming())
->setStart($timing['start'])
->setEnd($timing['end']));
$article->addEventTiming((new Class_Article_EventTiming)
->setStart($this->_localizeDateTime($timing['start']))
->setEnd($this->_localizeDateTime($timing['end'])));
$open_agenda->appendEvent($article);
return $this;
......
......@@ -61,11 +61,11 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
/** @test */
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() {
$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());
......@@ -81,21 +81,20 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
/** @test */
public function firstArticleShouldHaveThreeTimings() {
$this->assertEquals([
['start' => '2019-11-25 09:30',
'end' => '2019-11-25 11:30',
['start' => '2019-11-25 10:30',
'end' => '2019-11-25 12:30',
'article_id' => 1,
'id' => 1],
['start' => '2019-11-29 09:00',
'end' => '2019-11-29 11:00',
['start' => '2019-11-29 10:00',
'end' => '2019-11-29 12:00',
'article_id' => 1,
'id' => 2],
['start' => '2019-12-01 09:30',
'end' => '2019-12-01 10:30',
['start' => '2019-12-01 10:30',
'end' => '2019-12-01 11:30',
'article_id' => 1,
'id' => 3]],
$this->_dumpArticleTimings(1));
}
......@@ -105,23 +104,22 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
public function onSecondImportArticleShouldStillHaveThreeTimings() {
Class_ExternalAgenda::find(12)->import();
$this->assertEquals([
['start' => '2019-11-25 09:30',
'end' => '2019-11-25 11:30',
['start' => '2019-11-25 10:30',
'end' => '2019-11-25 12:30',
'article_id' => 1,
'id' => 9],
['start' => '2019-11-29 09:00',
'end' => '2019-11-29 11:00',
['start' => '2019-11-29 10:00',
'end' => '2019-11-29 12:00',
'article_id' => 1,
'id' => 10],
['start' => '2019-12-01 09:30',
'end' => '2019-12-01 10:30',
['start' => '2019-12-01 10:30',
'end' => '2019-12-01 11:30',
'article_id' => 1,
'id' => 11]],
'id' => 11]
],
$this->_dumpArticleTimings(1));
}
......@@ -134,16 +132,16 @@ class ArticlesMultipleTimingsOpenAgendaImportTest extends ExternalAgendasOpenAge
/** @test */
public function articleTwoShouldHaveTimingsSameAsOrigine() {
$this->assertEquals([
['start' => '2019-11-25 10:00',
'end' => '2019-11-25 10:30',
['start' => '2019-11-25 11:00',
'end' => '2019-11-25 11:30',
'article_id' => 2,
'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,
'id' => 5]
],
$this->_dumpArticleTimings(2));
}
}
......@@ -76,12 +76,13 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
public function setup() {
parent::setup();
Class_ExternalAgenda::find(12)->import();
Class_Article::clearCache();
}
/** @test */
public function countArticlesShouldBeSixteen() {
$this->assertCount(16, Class_Article::findAll());
public function countArticlesShouldBeEight() {
$this->assertCount(8, Class_Article::findAll());
}
......@@ -92,15 +93,15 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
/** @test */
public function firstArticleDateMajShouldBeEmpty() {
$this->assertEquals('', Class_Article::find(1)->getDateMaj());
public function firstArticleDateMajShouldBe2019_11_26_15_12() {
$this->assertEquals('2019-11-26 15:12', Class_Article::find(1)->getDateMaj());
}
/** @test */
public function afterSecondImportCountArticlesShouldRemainsSixteen() {
public function afterSecondImportCountArticlesShouldRemainsEight() {
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
]
);
Class_ExternalAgenda::find(12)->import();
$this->assertCount(16, Class_Article::findAll());
$this->assertCount(8, Class_Article::findAll());
$this->assertNull(Class_Article::find(234));
}
......@@ -132,7 +133,7 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
]
);
Class_ExternalAgenda::find(12)->import();
$this->assertCount(17, Class_Article::findAll());
$this->assertCount(9, Class_Article::findAll());
$this->assertNotNull(Class_Article::find(234));
}
......@@ -186,7 +187,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
}
/** @test */
public function numberOfLocationsShouldBeTwo() {
$this->assertCount(2, Class_Lieu::findAll());
......@@ -210,7 +210,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
}
/** @test */
public function secondLocationShouldBeAFIAnnecy() {
$this->assertEquals(['id' => 2,
......@@ -228,7 +227,6 @@ class ExternalAgendasOpenAgendaImportTest extends ExternalAgendasOpenAgendaImpor
}
/** @test */
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>',
......
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