tessl install tessl/pypi-flask-admin@1.6.0Simple and extensible admin interface framework for Flask
Agent Success
Agent success rate when using this tile
86%
Improvement
Agent success rate improvement when using this tile compared to baseline
1.3x
Baseline
Agent success rate without this tile
66%
{
"context": "This criteria evaluates how well the engineer uses Flask-Admin's form validation and error handling capabilities. The focus is on proper use of WTForms validators through form_args, custom validation with on_model_change, and graceful handling of database constraint violations.",
"type": "weighted_checklist",
"checklist": [
{
"name": "ModelView Integration",
"description": "Uses flask_admin.contrib.sqla.ModelView to create an admin view for the Product model with proper SQLAlchemy session binding",
"max_score": 15
},
{
"name": "Required Field Validators",
"description": "Uses form_args to add DataRequired validators to the name, sku, price, and quantity fields",
"max_score": 20
},
{
"name": "Email Validation",
"description": "Uses form_args to add Email validator from wtforms.validators to the email field",
"max_score": 10
},
{
"name": "Range Validators",
"description": "Uses form_args to add NumberRange validators with min parameter to enforce positive price (min=0.01) and non-negative quantity (min=0)",
"max_score": 15
},
{
"name": "Length Validators",
"description": "Uses form_args to add Length validators with max parameter to enforce maximum length constraints on name (max=100) and sku (max=50) fields",
"max_score": 10
},
{
"name": "Field Labels",
"description": "Uses form_args to customize field labels with the label parameter (e.g., 'SKU' for the sku field)",
"max_score": 5
},
{
"name": "Database Constraint Handling",
"description": "Overrides on_model_change method to catch IntegrityError from sqlalchemy.exc and raise ValidationError with a user-friendly message for unique constraint violations",
"max_score": 20
},
{
"name": "Admin Registration",
"description": "Uses Admin class from flask_admin to create admin instance and properly adds the ModelView to the admin interface using admin.add_view()",
"max_score": 5
}
]
}