Source code for aries_cloudagent.protocols.actionmenu.v1_0.models.menu_form
"""Record used to represent the form associated with an action menu option."""
from typing import Sequence
from marshmallow import EXCLUDE, fields
from .....messaging.models.base import BaseModel, BaseModelSchema
from .menu_form_param import MenuFormParam, MenuFormParamSchema
[docs]class MenuForm(BaseModel):
"""Instance of a form associated with an action menu item."""
def __init__(
self,
*,
title: str = None,
description: str = None,
params: Sequence[MenuFormParam] = None,
submit_label: str = None,
):
"""
Initialize a MenuForm instance.
Args:
title: The menu form title
description: Additional descriptive text for the menu form
params: A list of form parameters
submit_label: An alternative label for the form submit button
"""
self.title = title
self.description = description
self.params = list(params) if params else []
self.submit_label = submit_label
[docs]class MenuFormSchema(BaseModelSchema):
"""MenuForm schema."""
title = fields.Str(
required=False,
description="Menu form title",
example="Preferences",
)
description = fields.Str(
required=False,
description="Additional descriptive text for menu form",
example="Window preference settings",
)
params = fields.List(
fields.Nested(MenuFormParamSchema()),
required=False,
description="List of form parameters",
)
submit_label = fields.Str(
required=False,
data_key="submit-label",
description="Alternative label for form submit button",
example="Send",
)