Commit 2781c496 authored by Dan Lobelle's avatar Dan Lobelle Committed by Owen Bush
Browse files

Issue #3318998 by muriqui, owenbush: Instances not created correctly when...

Issue #3318998 by muriqui, owenbush: Instances not created correctly when adding a series with multiple custom dates
parent 6a59e06e
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -158,11 +158,9 @@ function recurring_events_eventseries_insert(EntityInterface $entity) {
  if (\Drupal::isConfigSyncing()) {
    return;
  }
  /** @var \Drupal\recurring_events\EventCreationService $creation_service */
  $creation_service = \Drupal::service('recurring_events.event_creation_service');
  $creation_service->createInstances($entity);

  $instances = $entity->event_instances->referencedEntities();
  if (!empty($instances)) {
  $instances = $creation_service->createInstances($entity);
  foreach ($instances as $instance) {
    $instance->set('eventseries_id', $entity->id());
    $instance->setNewRevision(FALSE);
@@ -173,7 +171,6 @@ function recurring_events_eventseries_insert(EntityInterface $entity) {
    $instance->save();
  }
}
}

/**
 * Implements hook_ENTITY_TYPE_insert().
+9 −2
Original line number Diff line number Diff line
@@ -439,10 +439,15 @@ class EventCreationService {
  /**
   * Create the event instances from the form state.
   *
   * @param Drupal\recurring_events\Entity\EventSeries $event
   * @param \Drupal\recurring_events\Entity\EventSeries $event
   *   The stored event series entity.
   *
   * @return \Drupal\recurring_events\Entity\EventInstance[]
   *   An array of event instances created for the series.
   *
   * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
   */
  public function createInstances(EventSeries $event) {
  public function createInstances(EventSeries $event): array {
    $form_data = $this->convertEntityConfigToArray($event);
    $event_instances = [];

@@ -494,6 +499,8 @@ class EventCreationService {
    $this->messenger->addMessage($this->translation->translate('A total of %items event instances were created as part of this event series.', [
      '%items' => count($event_instances),
    ]));

    return $event_instances;
  }

  /**