From e053f4e7087dd56758b8f49d17b98d51e52d6290 Mon Sep 17 00:00:00 2001
From: owenbush <owenbush@2765259.no-reply.drupal.org>
Date: Mon, 27 Apr 2020 09:06:20 -0600
Subject: [PATCH] Issue #3090302 by owenbush, Snehal Brahmbhatt, MrPaulDriver:
 Registrations: If capacity field is left blank, no registrations are possible

---
 .../recurring_events_registration/src/Form/RegistrantForm.php | 4 +++-
 .../src/Plugin/Field/FieldWidget/EventRegistrationWidget.php  | 2 +-
 .../src/RegistrationCreationService.php                       | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/modules/recurring_events_registration/src/Form/RegistrantForm.php b/modules/recurring_events_registration/src/Form/RegistrantForm.php
index 73f277ce..95ccb0f4 100644
--- a/modules/recurring_events_registration/src/Form/RegistrantForm.php
+++ b/modules/recurring_events_registration/src/Form/RegistrantForm.php
@@ -241,7 +241,9 @@ class RegistrantForm extends ContentEntityForm {
       $form['availability'] = [
         '#type' => 'markup',
         '#prefix' => '<span class="registration-availability">',
-        '#markup' => $this->t('Spaces Available: @availability', ['@availability' => $availability]),
+        '#markup' => $this->t('Spaces Available: @availability', [
+          '@availability' => ($availability == -1) ? $this->t('Unlimited') : $availability
+        ]),
         '#suffix' => '</span>',
         '#weight' => -99,
       ];
diff --git a/modules/recurring_events_registration/src/Plugin/Field/FieldWidget/EventRegistrationWidget.php b/modules/recurring_events_registration/src/Plugin/Field/FieldWidget/EventRegistrationWidget.php
index 9f9939cf..15fcb254 100644
--- a/modules/recurring_events_registration/src/Plugin/Field/FieldWidget/EventRegistrationWidget.php
+++ b/modules/recurring_events_registration/src/Plugin/Field/FieldWidget/EventRegistrationWidget.php
@@ -130,7 +130,7 @@ class EventRegistrationWidget extends DateRangeDefaultWidget {
     $element['capacity'] = [
       '#type' => 'number',
       '#title' => $this->t('Total Number of Spaces Available'),
-      '#description' => $this->t('Maximum number of attendees available for each series, or individual event.'),
+      '#description' => $this->t('Maximum number of attendees available for each series, or individual event. Leave blank for unlimited.'),
       '#weight' => 4,
       '#default_value' => $items[$delta]->capacity ?: '',
       '#min' => 0,
diff --git a/modules/recurring_events_registration/src/RegistrationCreationService.php b/modules/recurring_events_registration/src/RegistrationCreationService.php
index 86f8334e..c2f3e017 100644
--- a/modules/recurring_events_registration/src/RegistrationCreationService.php
+++ b/modules/recurring_events_registration/src/RegistrationCreationService.php
@@ -227,7 +227,8 @@ class RegistrationCreationService {
 
     $capacity = $this->eventSeries->event_registration->capacity;
     if (empty($capacity)) {
-      $capacity = 0;
+      // Set capacity to unlimited if no capacity is specified.
+      return -1;
     }
     $availability = $capacity - count($parties);
     if ($availability < 0) {
-- 
GitLab