Simple and extensible admin interface framework for Flask
86
Quality
Pending
Does it follow best practices?
Impact
86%
1.30xAverage score across 10 eval scenarios
{
"context": "This criteria evaluates the engineer's ability to implement Flask-Admin batch actions for bulk operations on database models, including creating custom actions with the @action decorator, managing transactions, and controlling action availability.",
"type": "weighted_checklist",
"checklist": [
{
"name": "@action decorator usage",
"description": "Uses the @action decorator from flask_admin.actions to define custom batch action methods (action_mark_featured, action_discontinue, action_reset_stock) with appropriate parameters (name, text, and confirmation message where specified)",
"max_score": 30
},
{
"name": "Batch update implementation",
"description": "Implements batch operations that correctly query and update multiple records using the provided list of IDs, using appropriate SQLAlchemy query methods like filter() and update() or iterating through selected records",
"max_score": 25
},
{
"name": "Session commit handling",
"description": "Properly commits database changes using self.session.commit() after batch operations to persist the updates to the database",
"max_score": 15
},
{
"name": "Flash messages",
"description": "Uses flask's flash() function to display success messages to users after batch operations, including the count of affected records",
"max_score": 10
},
{
"name": "Confirmation prompts",
"description": "Specifies confirmation message parameter in the @action decorator for the discontinue action with the exact text 'Are you sure you want to discontinue selected products?'",
"max_score": 10
},
{
"name": "Action disablement",
"description": "Disables the default batch delete action by setting action_disallowed_list attribute to include 'delete' or by overriding is_action_allowed() method to return False for the delete action",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-flask-admindocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10