From ca167c0172bf1771a08edaf53766af4c7299985e Mon Sep 17 00:00:00 2001
From: Lars Eggert <lars@eggert.org>
Date: Thu, 24 Feb 2022 09:11:32 +0000
Subject: [PATCH] Hopefully fix #3556.  - Legacy-Id: 19978

---
 ietf/meeting/forms.py                     |  9 +++++++++
 ietf/static/js/meeting-interim-request.js | 12 +-----------
 ietf/static/js/select2.js                 |  1 +
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/ietf/meeting/forms.py b/ietf/meeting/forms.py
index f713c5b77..50dcfd5ca 100644
--- a/ietf/meeting/forms.py
+++ b/ietf/meeting/forms.py
@@ -105,6 +105,8 @@ class InterimSessionInlineFormSet(BaseInlineFormSet):
 
 class InterimMeetingModelForm(forms.ModelForm):
     group = GroupModelChoiceField(queryset=Group.objects.filter(type_id__in=GroupFeatures.objects.filter(has_meetings=True).values_list('type_id',flat=True), state__in=('active', 'proposed', 'bof')).order_by('acronym'), required=False, empty_label="Click to select")
+    group.widget.attrs['data-max-entries'] = 1
+    group.widget.attrs['data-minimum-input-length'] = 0
     in_person = forms.BooleanField(required=False)
     meeting_type = forms.ChoiceField(choices=(
         ("single", "Single"),
@@ -120,7 +122,14 @@ class InterimMeetingModelForm(forms.ModelForm):
     city = forms.CharField(max_length=255, required=False)
     city.widget.attrs['placeholder'] = "City"
     country = forms.ChoiceField(choices=countries, required=False)
+    country.widget.attrs['class'] = "select2-field"
+    country.widget.attrs['data-max-entries'] = 1
+    country.widget.attrs['data-placeholder'] = "Country"
+    country.widget.attrs['data-minimum-input-length'] = 0
     time_zone = forms.ChoiceField(choices=timezones)
+    time_zone.widget.attrs['class'] = "select2-field"
+    time_zone.widget.attrs['data-max-entries'] = 1
+    time_zone.widget.attrs['data-minimum-input-length'] = 0
 
     class Meta:
         model = Meeting
diff --git a/ietf/static/js/meeting-interim-request.js b/ietf/static/js/meeting-interim-request.js
index d63160680..1d68abb6c 100644
--- a/ietf/static/js/meeting-interim-request.js
+++ b/ietf/static/js/meeting-interim-request.js
@@ -6,9 +6,6 @@ var interimRequest = {
         interimRequest.addButton = $('#add_session');
         interimRequest.inPerson = $('#id_in_person');
         interimRequest.timezone = $('#id_time_zone');
-        // bind functions
-        $('.select2-field')
-            .select2();
         interimRequest.addButton.on("click", interimRequest.addSession);
         $('.btn-delete')
             .on("click", interimRequest.deleteSession);
@@ -33,8 +30,6 @@ var interimRequest = {
             .each(interimRequest.calculateEndTime);
         $('input[name$="-time"]')
             .each(interimRequest.updateInfo);
-        $('#id_country')
-            .select2({ placeholder: "Country" });
     },
 
     addSession: function () {
@@ -81,11 +76,6 @@ var interimRequest = {
         template.before(el);
         el.removeClass("template visually-hidden");
 
-        el.find(".select2-field")
-            .each(function () {
-                setupSelect2Field($(this));
-            });
-
         // copy field contents
         var first_session = $(".fieldset:first");
         el.find("input[name$='remote_instructions']")
@@ -265,7 +255,7 @@ var interimRequest = {
                 .prop('disabled', true);
         }
     }
-}
+};
 
 $(document)
     .ready(function () {
diff --git a/ietf/static/js/select2.js b/ietf/static/js/select2.js
index 61417103a..3a3a0fdb6 100644
--- a/ietf/static/js/select2.js
+++ b/ietf/static/js/select2.js
@@ -7,6 +7,7 @@ $.fn.select2.defaults.set("allowClear", true);
 $.fn.select2.defaults.set("debug", false);
 $.fn.select2.defaults.set("dropdownCssClass", ":all:");
 $.fn.select2.defaults.set("minimumInputLength", 2);
+$.fn.select2.defaults.set("placeholder", "");
 $.fn.select2.defaults.set("selectionCssClass", ":all:");
 $.fn.select2.defaults.set("theme", "bootstrap-5");
 $.fn.select2.defaults.set("width", "off");