Add Set<number>-based selection state to ScholarsPage with checkboxes in both table and card views, select-all toggle, and stale-key pruning. Backend: POST /scholars/bulk-delete, POST /scholars/bulk-toggle, and GET /scholars/export?ids= filter. Service functions use user-scoped queries. Structured logging for bulk operations. Frontend: useScholarBulkActions composable extracts selection and bulk action logic. AppSelect-based action dropdown with dynamic options. Delete prompts window.confirm; enable/disable applies immediately. Export downloads filtered JSON. Includes integration tests for all bulk endpoints and frontend unit tests for selection toggle, select-all, and stale pruning. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| admin.py | ||
| admin_dbops.py | ||
| admin_settings.py | ||
| auth.py | ||
| publications.py | ||
| run_manual.py | ||
| run_serializers.py | ||
| runs.py | ||
| scholar_helpers.py | ||
| scholars.py | ||
| settings.py | ||