1.9 KiB
1.9 KiB
Tasks: Migration Plugin Dashboard Grid
Phase 1: Setup
- T001 Create migration route module in backend/src/api/routes/migration.py
- T002 Register migration router in backend/src/app.py
- T003 Export migration router in backend/src/api/routes/init.py
Phase 2: Foundational
- T004 Create Dashboard model in backend/src/models/dashboard.py
Phase 3: User Story 1 - Advanced Dashboard Selection
- T005 [P] [US1] Extend SupersetClient to fetch dashboards with metadata (handling missing fields) in backend/src/core/superset_client.py
- T006 [US1] Implement GET /api/migration/dashboards endpoint in backend/src/api/routes/migration.py
- T007 [P] [US1] Create DashboardGrid component structure in frontend/src/components/DashboardGrid.svelte
- T008 [US1] Implement data fetching and state management in frontend/src/components/DashboardGrid.svelte
- T009 [US1] Implement client-side filtering logic in frontend/src/components/DashboardGrid.svelte
- T010 [US1] Implement pagination logic in frontend/src/components/DashboardGrid.svelte
- T011 [US1] Implement selection logic (single and Select All) in frontend/src/components/DashboardGrid.svelte
- T012 [US1] Integrate DashboardGrid into migration page and connect selection to submission in frontend/src/routes/migration/+page.svelte
- T013 [US1] Implement POST /api/migration/execute endpoint to accept selected dashboard IDs in backend/src/api/routes/migration.py
Phase 4: Polish
- T014 Verify error handling and empty states in frontend/src/components/DashboardGrid.svelte
- T015 Ensure consistent styling with Tailwind CSS in frontend/src/components/DashboardGrid.svelte
Dependencies
- US1 depends on T004, T005, T006
Implementation Strategy
- Implement backend support first (Models -> Client -> API)
- Implement frontend component with mock data then connect API
- Integrate into main page