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,
metadata={"description": "Menu form title", "example": "Preferences"},
)
description = fields.Str(
required=False,
metadata={
"description": "Additional descriptive text for menu form",
"example": "Window preference settings",
},
)
params = fields.List(
fields.Nested(MenuFormParamSchema()),
required=False,
metadata={"description": "List of form parameters"},
)
submit_label = fields.Str(
required=False,
data_key="submit-label",
metadata={
"description": "Alternative label for form submit button",
"example": "Send",
},
)