Fix device name in zwave_js repair flow (#99414)
This commit is contained in:
parent
1d80af870d
commit
169a318ec4
3 changed files with 15 additions and 12 deletions
|
@ -600,19 +600,16 @@ class NodeEvents:
|
|||
# device config has changed, and if so, issue a repair registry entry for a
|
||||
# possible reinterview
|
||||
if not node.is_controller_node and await node.async_has_device_config_changed():
|
||||
device_name = device.name_by_user or device.name or "Unnamed device"
|
||||
async_create_issue(
|
||||
self.hass,
|
||||
DOMAIN,
|
||||
f"device_config_file_changed.{device.id}",
|
||||
data={"device_id": device.id},
|
||||
data={"device_id": device.id, "device_name": device_name},
|
||||
is_fixable=True,
|
||||
is_persistent=False,
|
||||
translation_key="device_config_file_changed",
|
||||
translation_placeholders={
|
||||
"device_name": device.name_by_user
|
||||
or device.name
|
||||
or "Unnamed device"
|
||||
},
|
||||
translation_placeholders={"device_name": device_name},
|
||||
severity=IssueSeverity.WARNING,
|
||||
)
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
"""Repairs for Z-Wave JS."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import cast
|
||||
|
||||
import voluptuous as vol
|
||||
from zwave_js_server.model.node import Node
|
||||
|
||||
|
@ -16,9 +14,10 @@ from .helpers import async_get_node_from_device_id
|
|||
class DeviceConfigFileChangedFlow(RepairsFlow):
|
||||
"""Handler for an issue fixing flow."""
|
||||
|
||||
def __init__(self, node: Node) -> None:
|
||||
def __init__(self, node: Node, device_name: str) -> None:
|
||||
"""Initialize."""
|
||||
self.node = node
|
||||
self.device_name = device_name
|
||||
|
||||
async def async_step_init(
|
||||
self, user_input: dict[str, str] | None = None
|
||||
|
@ -34,17 +33,23 @@ class DeviceConfigFileChangedFlow(RepairsFlow):
|
|||
self.hass.async_create_task(self.node.async_refresh_info())
|
||||
return self.async_create_entry(title="", data={})
|
||||
|
||||
return self.async_show_form(step_id="confirm", data_schema=vol.Schema({}))
|
||||
return self.async_show_form(
|
||||
step_id="confirm",
|
||||
data_schema=vol.Schema({}),
|
||||
description_placeholders={"device_name": self.device_name},
|
||||
)
|
||||
|
||||
|
||||
async def async_create_fix_flow(
|
||||
hass: HomeAssistant,
|
||||
issue_id: str,
|
||||
data: dict[str, str | int | float | None] | None,
|
||||
data: dict[str, str] | None,
|
||||
) -> RepairsFlow:
|
||||
"""Create flow."""
|
||||
|
||||
if issue_id.split(".")[0] == "device_config_file_changed":
|
||||
assert data
|
||||
return DeviceConfigFileChangedFlow(
|
||||
async_get_node_from_device_id(hass, cast(dict, data)["device_id"])
|
||||
async_get_node_from_device_id(hass, data["device_id"]), data["device_name"]
|
||||
)
|
||||
return ConfirmRepairFlow()
|
||||
|
|
|
@ -77,6 +77,7 @@ async def test_device_config_file_changed(
|
|||
|
||||
flow_id = data["flow_id"]
|
||||
assert data["step_id"] == "confirm"
|
||||
assert data["description_placeholders"] == {"device_name": device.name}
|
||||
|
||||
# Apply fix
|
||||
url = RepairsFlowResourceView.url.format(flow_id=flow_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue