Add config message items selector to imap option flow (#115108)

* Update const.py

* Update config_flow.py

* Update coordinator.py

* Update coordinator.py

* Update strings.json

* Update config_flow.py

* Update const.py

* Update coordinator.py

* Update config_flow.py

* Update config_flow.py

* Update test_diagnostics.py

* Update const.py

* Update test_init.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_init.py

* Update test_diagnostics.py

* Update test_init.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_config_flow.py

* Update config_flow.py

* Update test_config_flow.py

* Update test_init.py

* Update const.py

* Only make text and headers optional

* Add message data tests

* Add message data test

* Update test_config_flow.py

* Update test message data

* Fix ruff

* Fix ruff

* Update test_init.py

* Update strings.json

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
This commit is contained in:
Luca Angemi 2024-04-08 19:34:50 +02:00 committed by GitHub
parent f23e48f373
commit fc1ebdaaa3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 112 additions and 10 deletions

View file

@ -33,6 +33,7 @@ from .const import (
CONF_CHARSET,
CONF_CUSTOM_EVENT_DATA_TEMPLATE,
CONF_ENABLE_PUSH,
CONF_EVENT_MESSAGE_DATA,
CONF_FOLDER,
CONF_MAX_MESSAGE_SIZE,
CONF_SEARCH,
@ -42,6 +43,7 @@ from .const import (
DEFAULT_PORT,
DOMAIN,
MAX_MESSAGE_SIZE_LIMIT,
MESSAGE_DATA_OPTIONS,
)
from .coordinator import connect_to_server
from .errors import InvalidAuth, InvalidFolder
@ -55,6 +57,13 @@ CIPHER_SELECTOR = SelectSelector(
)
)
TEMPLATE_SELECTOR = TemplateSelector(TemplateSelectorConfig())
EVENT_MESSAGE_DATA_SELECTOR = SelectSelector(
SelectSelectorConfig(
options=MESSAGE_DATA_OPTIONS,
translation_key=CONF_EVENT_MESSAGE_DATA,
multiple=True,
)
)
CONFIG_SCHEMA = vol.Schema(
{
@ -65,6 +74,8 @@ CONFIG_SCHEMA = vol.Schema(
vol.Optional(CONF_CHARSET, default="utf-8"): str,
vol.Optional(CONF_FOLDER, default="INBOX"): str,
vol.Optional(CONF_SEARCH, default="UnSeen UnDeleted"): str,
# The default for new entries is to not include text and headers
vol.Optional(CONF_EVENT_MESSAGE_DATA, default=[]): cv.ensure_list,
}
)
CONFIG_SCHEMA_ADVANCED = {
@ -78,6 +89,10 @@ OPTIONS_SCHEMA = vol.Schema(
{
vol.Optional(CONF_FOLDER, default="INBOX"): str,
vol.Optional(CONF_SEARCH, default="UnSeen UnDeleted"): str,
# The default for older entries is to include text and headers
vol.Optional(
CONF_EVENT_MESSAGE_DATA, default=MESSAGE_DATA_OPTIONS
): EVENT_MESSAGE_DATA_SELECTOR,
}
)