Skip to content

Commit cc174b6

Browse files
authored
Load Choices.js with data-js-choices. (#4381)
Added "data-js-choices" to: * CommentForm * UpdateReviewersForm * BatchUpdateReviewersForm * UpdatePartnersForm * BecomeUserForm
1 parent 15a369a commit cc174b6

File tree

8 files changed

+11
-76
lines changed

8 files changed

+11
-76
lines changed

hypha/apply/activity/forms.py

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class CommentForm(FileFormMixin, forms.ModelForm):
2020
empty_label=_("Select..."),
2121
label=_("Assign to"),
2222
)
23+
assign_to.widget.attrs.update({"data-js-choices": ""})
2324

2425
class Meta:
2526
model = Activity

hypha/apply/activity/templates/activity/include/comment_form.html

-14
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,4 @@
3838
</div>
3939
</div>
4040
</form>
41-
<script type="module">
42-
{% comment %} Do this here as the select elements for partners are dynamically generated. {% endcomment %}
43-
import Choices from "{% static 'js/esm/choices.js-10-2-0.js' %}";
44-
45-
const selectElements = document.querySelectorAll('.id_assign_to select');
46-
47-
// add choices to all select elements
48-
selectElements.forEach((selectElement) => {
49-
new Choices(selectElement, {
50-
removeItemButton: true,
51-
allowHTML: true,
52-
});
53-
});
54-
</script>
5541
</div>

hypha/apply/funds/forms.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,14 @@ class UpdateReviewersForm(ApplicationSubmissionModelForm):
9595
label=_("External Reviewers"),
9696
required=False,
9797
)
98+
reviewer_reviewers.widget.attrs.update(
99+
{"data-placeholder": _("Select..."), "data-js-choices": ""}
100+
)
98101

99102
class Meta:
100103
model = ApplicationSubmission
101104
fields: list = []
102105

103-
reviewer_reviewers.widget.attrs.update({"data-placeholder": "Select..."})
104-
105106
def __init__(self, *args, **kwargs):
106107
self.user = kwargs.pop("user")
107108
if kwargs.get("instance"):
@@ -127,6 +128,7 @@ def __init__(self, *args, **kwargs):
127128
self.fields[field_name] = data["field"]
128129
self.role_fields[field_name] = data["role"]
129130
self.fields[field_name].initial = assigned_roles.get(data["role"])
131+
self.fields[field_name].widget.attrs.update({"data-js-choices": ""})
130132

131133
self.submitted_reviewers = User.objects.filter(
132134
id__in=self.instance.assigned.reviewed().values("reviewer"),
@@ -234,7 +236,7 @@ class BatchUpdateReviewersForm(forms.Form):
234236
)
235237
external_reviewers = forms.ModelMultipleChoiceField(
236238
queryset=User.objects.reviewers().only("pk", "full_name"),
237-
widget=MultiCheckboxesWidget(attrs={"data-placeholder": "Select..."}),
239+
widget=MultiCheckboxesWidget(attrs={"data-placeholder": _("Select...")}),
238240
label=_("External Reviewers"),
239241
required=False,
240242
)
@@ -252,6 +254,7 @@ def __init__(self, *args, user=None, round=None, **kwargs):
252254
field_name = data["field_name"]
253255
self.fields[field_name] = data["field"]
254256
self.role_fields[field_name] = data["role"]
257+
self.fields[field_name].widget.attrs.update({"data-js-choices": ""})
255258

256259
self.fields.move_to_end("external_reviewers")
257260

@@ -330,7 +333,9 @@ class UpdatePartnersForm(ApplicationSubmissionModelForm):
330333
label=_("Partners"),
331334
required=False,
332335
)
333-
partner_reviewers.widget.attrs.update({"data-placeholder": "Select..."})
336+
partner_reviewers.widget.attrs.update(
337+
{"data-placeholder": _("Select..."), "data-js-choices": ""}
338+
)
334339

335340
class Meta:
336341
model = ApplicationSubmission

hypha/apply/funds/templates/funds/includes/update_reviewer_form.html

-15
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,3 @@
5858
>{% trans "Cancel" %}</button>
5959
</div>
6060
</form>
61-
62-
<script type="module">
63-
{% comment %} Do this here as the select elements for different roles are dynamically generated. {% endcomment %}
64-
import Choices from "{% static 'js/esm/choices.js-10-2-0.js' %}";
65-
66-
const selectElements = document.querySelectorAll('#reviewer_form select');
67-
68-
// add choices to all select elements
69-
selectElements.forEach((selectElement) => {
70-
new Choices(selectElement, {
71-
removeItemButton: true,
72-
allowHTML: true,
73-
});
74-
});
75-
</script>

hypha/apply/funds/templates/funds/modals/update_partner_form.html

-15
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,3 @@
1515
{% url 'funds:submissions:partners_update' pk=object.pk as progress_url %}
1616
{% include 'funds/includes/dialog_form_base.html' with form=form value=value url=progress_url %}
1717
</form>
18-
19-
<script type="module">
20-
{% comment %} Do this here as the select elements for partners are dynamically generated. {% endcomment %}
21-
import Choices from "{% static 'js/esm/choices.js-10-2-0.js' %}";
22-
23-
const selectElements = document.querySelectorAll('#partner_form select');
24-
25-
// add choices to all select elements
26-
selectElements.forEach((selectElement) => {
27-
new Choices(selectElement, {
28-
removeItemButton: true,
29-
allowHTML: true,
30-
});
31-
});
32-
</script>

hypha/apply/funds/templates/submissions/submenu/bulk-update-reviewers.html

-15
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,3 @@
4848
{% trans "Update" %}
4949
</button>
5050
</form>
51-
52-
<script type="module">
53-
{% comment %} Do this here as the select elements for different roles are dynamically generated. {% endcomment %}
54-
import Choices from "{% static 'js/esm/choices.js-10-2-0.js' %}";
55-
56-
const selectElements = document.querySelectorAll('#bulk-update-reviewers-form select');
57-
58-
// add choices to all select elements
59-
selectElements.forEach((selectElement) => {
60-
new Choices(selectElement, {
61-
removeItemButton: true,
62-
allowHTML: true,
63-
});
64-
});
65-
</script>

hypha/apply/users/forms.py

+1
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ class BecomeUserForm(forms.Form):
244244
label="",
245245
required=False,
246246
)
247+
user_pk.widget.attrs.update({"data-js-choices": ""})
247248

248249

249250
class EmailChangePasswordForm(forms.Form):

hypha/apply/users/templates/users/become.html

-13
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,3 @@
3333
>{% trans "Cancel" %}</button>
3434
</div>
3535
</i>
36-
37-
<script type="module">
38-
import Choices from "{% static 'js/esm/choices.js-10-2-0.js' %}";
39-
40-
const selectElements = document.querySelectorAll('select#id_user_pk');
41-
42-
// add choices to all select elements
43-
selectElements.forEach((selectElement) => {
44-
new Choices(selectElement, {
45-
allowHTML: true
46-
});
47-
});
48-
</script>

0 commit comments

Comments
 (0)