Skip to content

Commit

Permalink
feat: Allow name field to be overriden
Browse files Browse the repository at this point in the history
  • Loading branch information
lucbelliveau committed Apr 26, 2023
1 parent 15fb124 commit 725524d
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
8 changes: 5 additions & 3 deletions autocomplete/autocomplete.py
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,7 @@ def put(self, request, method):
data = QueryDict(request.body)
items_selected = data.getlist(self.name)
override_component_id = data.get("component_id", "")
component_name = data.get("name", self.name)

if items_selected == [""]:
items_selected = []
Expand Down Expand Up @@ -522,7 +523,7 @@ def sort_items(item):
return HttpResponse(
template.render(
{
"name": self.name,
"name": component_name,
"search": "",
"indicator": self.indicator,
"placeholder": self.placeholder,
Expand Down Expand Up @@ -592,6 +593,7 @@ def get(self, request, method):
items_selected = []

override_component_id = request.GET.get("component_id", "")
component_name = request.GET.get("name", self.name)

if method == "component":
template = loader.get_template("autocomplete/component.html")
Expand All @@ -600,7 +602,7 @@ def get(self, request, method):
return HttpResponse(
template.render(
{
"name": self.name,
"name": component_name,
"disabled": self.disabled,
"required": self.required,
"indicator": self.indicator,
Expand Down Expand Up @@ -631,7 +633,7 @@ def get(self, request, method):
return HttpResponse(
template.render(
{
"name": self.name,
"name": component_name,
"required": self.required,
"placeholder": self.placeholder,
"indicator": self.indicator,
Expand Down
4 changes: 2 additions & 2 deletions autocomplete/templates/autocomplete/chip.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
{% if not disabled %}
<a
hx-put="{% url route_name method='toggle' %}"
hx-params="{{ name }},item,remove,component_id"
hx-vals='{"component_id": "{{ component_id|escapejs }}", "remove": true, "item": "{{ item.value|escapejs }}"}'
hx-params="{{ name }},name,item,remove,component_id"
hx-vals='{"name": "{{ name|escapejs }}", "component_id": "{{ component_id|escapejs }}", "remove": true, "item": "{{ item.value|escapejs }}"}'
hx-include="#{{ component_id }}"
hx-swap="delete"
tabindex="-1"
Expand Down
4 changes: 2 additions & 2 deletions autocomplete/templates/autocomplete/item.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
onclick="return phac_aspc_autocomplete_item_click_handler(event)"
href="#"
hx-put="{% url route_name method='toggle' %}"
hx-params="{{ name }},item,component_id"
hx-params="{{ name }},name,item,component_id"
hx-include="#{{ component_id }}"
hx-vals='{"component_id": "{{ component_id|escapejs }}", "item": "{{ item.value|escapejs }}"}'
hx-vals='{"name": "{{ name|escapejs }}", "component_id": "{{ component_id|escapejs }}", "item": "{{ item.value|escapejs }}"}'
hx-swap="outerHTML"
{% if swap_oob %}
hx-swap-oob="outerHTML:#{{ component_id }}__item__{{ item.value|make_id }}"
Expand Down
2 changes: 1 addition & 1 deletion autocomplete/templates/autocomplete/textinput.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
hx-trigger="phac_aspc_autocomplete_trigger"
hx-include="#{{ component_id }}"
hx-target="#{{ component_id }}__items"
hx-vals="js:{component_id: '{{ component_id|escapejs }}', search: document.getElementById('{{ component_id|escapejs }}__textinput').value}"
hx-vals="js:{name: '{{ name|escapejs}}', component_id: '{{ component_id|escapejs }}', search: document.getElementById('{{ component_id|escapejs }}__textinput').value}"
hx-swap="outerHTML"
{% if indicator %}
hx-indicator="#{{ component_id }}__container .htmx-indicator"
Expand Down
4 changes: 2 additions & 2 deletions autocomplete/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def __init__(

if use_ac is None:
config = {
"name": name,
"name": opts.get("route_name", name),
"disabled": attrs.get("disabled", False) if attrs else False,
"required": attrs.get("required", False) if attrs else False,
"indicator": opts.get("indicator", None),
Expand Down Expand Up @@ -105,7 +105,7 @@ def get_context(self, name, value, attrs):
self.a_c.get_items(self.a_c, values=[str(x) for x in items_selected]),
)

context["name"] = self.a_c.name
context["name"] = attrs.get("name", self.attrs.get("name", self.a_c.name))

context["disabled"] = attrs.get("disabled", self.attrs.get("disabled", False))
context["required"] = attrs.get("required", self.attrs.get("required", False))
Expand Down

0 comments on commit 725524d

Please sign in to comment.