tessl install tessl/pypi-flask-wtf@1.2.0Form rendering, validation, and CSRF protection for Flask with WTForms.
Agent Success
Agent success rate when using this tile
72%
Improvement
Agent success rate improvement when using this tile compared to baseline
0.91x
Baseline
Agent success rate without this tile
79%
{
"context": "This criteria evaluates how effectively the engineer uses Flask-WTF's internationalization capabilities in conjunction with Flask-Babel to provide multilingual form validation messages. The focus is on proper configuration of translation support and integration with WTForms' translation catalog system.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Flask-Babel initialization",
"description": "Properly initializes Flask-Babel extension using `Babel()` and configures it with the Flask app via `init_app()` or direct instantiation",
"max_score": 20
},
{
"name": "Locale selector function",
"description": "Implements a locale selector function decorated with `@babel.localeselector` that determines the current locale from request parameters (e.g., query string or form data)",
"max_score": 20
},
{
"name": "FlaskForm usage",
"description": "Uses `FlaskForm` as the base class for the registration form to enable automatic i18n integration with WTForms validators",
"max_score": 15
},
{
"name": "WTForms i18n configuration",
"description": "Ensures Flask-WTF's i18n is enabled (either by default or explicitly via `WTF_I18N_ENABLED` configuration) to allow automatic translation of validation messages",
"max_score": 15
},
{
"name": "Translation catalog integration",
"description": "Leverages WTForms' built-in translation catalog by using standard WTForms validators (`DataRequired`, `Email`, `Length`, `NumberRange`) whose messages are automatically translated through Flask-Babel",
"max_score": 20
},
{
"name": "Per-request locale handling",
"description": "Correctly handles locale switching on a per-request basis, allowing different requests to use different locales without interfering with each other",
"max_score": 10
}
]
}