@@ -58,57 +58,59 @@ def optional(
5858 return vol .Optional (key , description = {"suggested_value" : suggested_value })
5959
6060
61+ def general_schema_definition (
62+ handler : SchemaConfigFlowHandler | SchemaOptionsFlowHandler ,
63+ ) -> Mapping [str , Any ]:
64+ """Create general schema."""
65+ schema = {
66+ required (
67+ const .CONF_FREQUENCY , handler .options , const .DEFAULT_FREQUENCY
68+ ): selector .SelectSelector (
69+ selector .SelectSelectorConfig (options = const .FREQUENCY_OPTIONS )
70+ ),
71+ optional (
72+ const .CONF_ICON_NORMAL , handler .options , const .DEFAULT_ICON_NORMAL
73+ ): selector .IconSelector (),
74+ optional (
75+ const .CONF_ICON_TOMORROW , handler .options , const .DEFAULT_ICON_TOMORROW
76+ ): selector .IconSelector (),
77+ optional (
78+ const .CONF_ICON_TODAY , handler .options , const .DEFAULT_ICON_TODAY
79+ ): selector .IconSelector (),
80+ optional (
81+ const .CONF_ICON_OVERDUE , handler .options , const .DEFAULT_ICON_OVERDUE
82+ ): selector .IconSelector (),
83+ optional (
84+ const .CONF_FORECAST_DATES , handler .options , const .DEFAULT_FORECAST_DATES
85+ ): selector .NumberSelector (
86+ selector .NumberSelectorConfig (
87+ min = 0 ,
88+ max = 100 ,
89+ mode = selector .NumberSelectorMode .BOX ,
90+ step = 1 ,
91+ )
92+ ),
93+ optional (ATTR_HIDDEN , handler .options , False ): bool ,
94+ optional (const .CONF_MANUAL , handler .options , False ): bool ,
95+ }
96+
97+ return schema
98+
99+
61100async def general_config_schema (
62101 handler : SchemaConfigFlowHandler | SchemaOptionsFlowHandler ,
63102) -> vol .Schema :
64103 """Generate config schema."""
65- return vol .Schema (
66- {
67- optional (CONF_NAME , handler .options ): selector .TextSelector (),
68- required (
69- const .CONF_FREQUENCY , handler .options , const .DEFAULT_FREQUENCY
70- ): selector .SelectSelector (
71- selector .SelectSelectorConfig (options = const .FREQUENCY_OPTIONS )
72- ),
73- optional (
74- const .CONF_ICON_NORMAL , handler .options , const .DEFAULT_ICON_NORMAL
75- ): selector .IconSelector (),
76- optional (
77- const .CONF_ICON_TODAY , handler .options , const .DEFAULT_ICON_TODAY
78- ): selector .IconSelector (),
79- optional (
80- const .CONF_ICON_TOMORROW , handler .options , const .DEFAULT_ICON_TOMORROW
81- ): selector .IconSelector (),
82- optional (ATTR_HIDDEN , handler .options , False ): bool ,
83- optional (const .CONF_MANUAL , handler .options , False ): bool ,
84- }
85- )
104+ schema_obj = {required (CONF_NAME , handler .options ): selector .TextSelector ()}
105+ schema_obj .update (general_schema_definition (handler ))
106+ return vol .Schema (schema_obj )
86107
87108
88109async def general_options_schema (
89110 handler : SchemaConfigFlowHandler | SchemaOptionsFlowHandler ,
90111) -> vol .Schema :
91112 """Generate options schema."""
92- return vol .Schema (
93- {
94- required (
95- const .CONF_FREQUENCY , handler .options , const .DEFAULT_FREQUENCY
96- ): selector .SelectSelector (
97- selector .SelectSelectorConfig (options = const .FREQUENCY_OPTIONS )
98- ),
99- optional (
100- const .CONF_ICON_NORMAL , handler .options , const .DEFAULT_ICON_NORMAL
101- ): selector .IconSelector (),
102- optional (
103- const .CONF_ICON_TODAY , handler .options , const .DEFAULT_ICON_TODAY
104- ): selector .IconSelector (),
105- optional (
106- const .CONF_ICON_TOMORROW , handler .options , const .DEFAULT_ICON_TOMORROW
107- ): selector .IconSelector (),
108- optional (ATTR_HIDDEN , handler .options , False ): bool ,
109- optional (const .CONF_MANUAL , handler .options , False ): bool ,
110- }
111- )
113+ return vol .Schema (general_schema_definition (handler ))
112114
113115
114116async def detail_config_schema (
0 commit comments