From e5414d64999b40591240a2dc4d089ed7f98f6526 Mon Sep 17 00:00:00 2001
From: owenbush <ojb@ukhhf.co.uk>
Date: Mon, 15 Jul 2019 10:36:55 -0600
Subject: [PATCH] Fixing incorrect timezone on registrant list and event series
 delete form

---
 .../src/RegistrantListBuilder.php             |  5 ++++-
 src/Form/EventSeriesDeleteForm.php            | 20 ++++++++++++++++---
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/modules/recurring_events_registration/src/RegistrantListBuilder.php b/modules/recurring_events_registration/src/RegistrantListBuilder.php
index c2d0481b..7d12a9c5 100644
--- a/modules/recurring_events_registration/src/RegistrantListBuilder.php
+++ b/modules/recurring_events_registration/src/RegistrantListBuilder.php
@@ -113,7 +113,10 @@ class RegistrantListBuilder extends EntityListBuilder {
 
     $row['id'] = $entity->id();
     $row['series'] = $series->toLink($series->title->value);
-    $row['instance'] = $instance->toLink($instance->date->start_date->format($this->config->get('recurring_events_registration.registrant.config')->get('date_format')));
+    $timezone = new \DateTimeZone(drupal_get_user_timezone());
+    $date = $instance->date->start_date;
+    $date->setTimezone($timezone);
+    $row['instance'] = $instance->toLink($date->format($this->config->get('recurring_events_registration.registrant.config')->get('date_format')));
     $row['type'] = $entity->getRegistrationType() == 'series' ? $this->t('Series') : $this->t('Instance');
     foreach ($this->getCustomFields() as $machine_name => $field) {
       $row[$machine_name] = $entity->get($machine_name)->value;
diff --git a/src/Form/EventSeriesDeleteForm.php b/src/Form/EventSeriesDeleteForm.php
index 9589033e..131250ba 100644
--- a/src/Form/EventSeriesDeleteForm.php
+++ b/src/Form/EventSeriesDeleteForm.php
@@ -7,6 +7,7 @@ use Drupal\Core\Form\FormStateInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Url;
+use Drupal\Core\Config\ConfigFactory;
 use Drupal\Core\Messenger\Messenger;
 use Drupal\Core\Render\Renderer;
 
@@ -31,6 +32,13 @@ class EventSeriesDeleteForm extends ContentEntityDeleteForm {
    */
   protected $messenger;
 
+  /**
+   * The config factory service.
+   *
+   * @var \Drupal\Core\Config\ConfigFactory
+   */
+  protected $config;
+
   /**
    * The renderer service.
    *
@@ -44,7 +52,8 @@ class EventSeriesDeleteForm extends ContentEntityDeleteForm {
     return new static(
       $container->get('entity.manager'),
       $container->get('messenger'),
-      $container->get('renderer')
+      $container->get('renderer'),
+      $container->get('config.factory')
     );
   }
 
@@ -57,10 +66,13 @@ class EventSeriesDeleteForm extends ContentEntityDeleteForm {
    *   The messenger service.
    * @param \Drupal\Core\Render\Renderer $renderer
    *   The renderer service.
+   * @param \Drupal\Core\Config\ConfigFactory $config
+   *   The config factory service.
    */
-  public function __construct(EntityManagerInterface $entity_manager, Messenger $messenger, Renderer $renderer) {
+  public function __construct(EntityManagerInterface $entity_manager, Messenger $messenger, Renderer $renderer, ConfigFactory $config) {
     $this->messenger = $messenger;
     $this->renderer = $renderer;
+    $this->config = $config;
     parent::__construct($entity_manager);
   }
 
@@ -98,9 +110,11 @@ class EventSeriesDeleteForm extends ContentEntityDeleteForm {
         ];
 
         $options = [];
+        $timezone = new \DateTimeZone(drupal_get_user_timezone());
         foreach ($instances as $instance) {
           $date = $instance->date->start_date;
-          $options[] = $instance->toLink($date->format('Y-m-d h:i A'));
+          $date->setTimezone($timezone);
+          $options[] = $instance->toLink($date->format($this->config->get('recurring_events_registration.registrant.config')->get('date_format')));
         }
 
         $description['instances'] = [
-- 
GitLab