Input forms
Shimoku provides multiple input fields and these can be linked to different logics to produce real-time outcomes. The Input form allows a rich variety of input components. You can use a rich variety of inputs and combine them passing it to s.plt.input_form()
.
An example on how to use the function:
input_data: Dict = {
'fields': [
{
'title': 'Personal information',
'fields': [
{
'mapping': 'name',
'fieldName': 'name',
'inputType': 'text',
},
{
'mapping': 'surname',
'fieldName': 'surname',
'inputType': 'text',
},
{
'mapping': 'age',
'fieldName': 'age',
'inputType': 'number',
},
{
'mapping': 'tel',
'fieldName': 'phone',
'inputType': 'tel',
},
{
'mapping': 'gender',
'fieldName': 'Gender',
'inputType': 'radio',
'options': ['Male', 'Female', 'No-binary', 'Undefined'],
},
{
'mapping': 'email',
'fieldName': 'email',
'inputType': 'email',
}
]
},
{
'title': 'Other data',
'fields': [
{
'mapping': 'skills',
'fieldName': 'Skills',
'options': ['Backend', 'Frontend', 'UX/UI', 'Api Builder', 'DevOps'],
'inputType': 'checkbox',
},
{
'mapping': 'birthDay',
'fieldName': 'Birthday',
'inputType': 'date',
},
{
'mapping': 'onCompany',
'fieldName': 'Time on Shimoku',
'inputType': 'dateRange',
},
{
'mapping': 'hobbies',
'fieldName': 'Hobbies',
'inputType': 'select',
'options': ['Make Strong Api', 'Sailing to Canarias', 'Send Abracitos'],
},
{
'mapping': 'textField2',
'fieldName': 'Test Text',
'inputType': 'text',
}
]
}
]
}
s.plt.input_form(
order=0, options=input_data
)
As shown in the previous image the default size of each form component is 12 columns. To set a custom value for each one the sizeColumns
must be specified:
input_data: Dict = {
'fields': [
{
'title': 'Personal information',
'fields': [
{
'mapping': 'name',
'fieldName': 'name',
'inputType': 'text',
'sizeColumns': 4,
},
{
'mapping': 'surname',
'fieldName': 'surname',
'inputType': 'text',
'sizeColumns': 4,
},
{
'mapping': 'age',
'fieldName': 'age',
'inputType': 'number',
'sizeColumns': 4,
},
{
'mapping': 'tel',
'fieldName': 'phone',
'inputType': 'tel',
'sizeColumns': 4,
},
{
'mapping': 'gender',
'fieldName': 'Gender',
'inputType': 'radio',
'options': ['Male', 'Female', 'No-binary', 'Undefined'],
'sizeColumns': 8,
},
{
'mapping': 'email',
'fieldName': 'email',
'inputType': 'email',
'sizeColumns': 12,
}
]
},
{
'title': 'Other data',
'fields': [
{
'mapping': 'skills',
'fieldName': 'Skills',
'options': ['Backend', 'Frontend', 'UX/UI', 'Api Builder', 'DevOps'],
'inputType': 'checkbox',
'sizeColumns': 6,
},
{
'mapping': 'birthDay',
'fieldName': 'Birthday',
'inputType': 'date',
'sizeColumns': 6,
},
{
'mapping': 'onCompany',
'fieldName': 'Time on Shimoku',
'inputType': 'dateRange',
'sizeColumns': 4,
},
{
'mapping': 'hobbies',
'fieldName': 'Hobbies',
'inputType': 'select',
'options': ['Make Strong Api', 'Sailing to Canarias', 'Send Abracitos'],
'sizeColumns': 8,
},
{
'mapping': 'textField2',
'fieldName': 'Test Text',
'inputType': 'text',
'sizeColumns': 12,
}
]
}
]
}
s.plt.input_form(
order=0, options=input_data
)
Retrieve input forms data
s.set_menu_path('input form')
input_data: List[Dict] = s.plt.get_input_forms()
Last updated