05/23 Phase 7

This commit is contained in:
2026-05-23 11:58:51 -04:00
parent c1405b5fb8
commit 8fc1878670
8 changed files with 638 additions and 15 deletions
+15 -10
View File
@@ -307,16 +307,21 @@ All actions are logged to console and optionally to a log file:
---
### 🔲 Phase 7 — Export + Polish
- [ ] Add export to Excel (`openpyxl`) for:
- [ ] Draw history
- [ ] Predictions
- [ ] Frequency analysis
- [ ] Add export to CSV
- [ ] Add `assets/icon.png`
- [ ] App title bar + icon
- [ ] Window min-size + resizable layout
- [ ] Error handling — network down, API timeout, bad CSV
### Phase 7 — Export + Polish
- [x] Write `core/exporter.py`
- [x] `export_draws_excel(filepath, game_id, date_from, date_to)` — openpyxl, styled header
- [x] `export_draws_csv(filepath, game_id, date_from, date_to)` — stdlib csv
- [x] `export_predictions_excel(filepath, game_id)` — openpyxl
- [x] `export_predictions_csv(filepath, game_id)` — stdlib csv
- [x] `export_frequency_excel(filepath, game_id, last_n)` — number + freq + gap
- [x] `create_icon_png(path, size)` — valid PNG, stdlib only (struct + zlib)
- [x] Add Export Excel + Export CSV buttons to History screen (filter-aware)
- [x] Add Export Excel + Export CSV buttons to Predictor screen (DB predictions)
- [x] Add Export Frequency button to Analysis screen (respects frequency window)
- [x] Auto-create `assets/icon.png` on startup if missing
- [x] Window min-size set (900×600) + resizable layout (all screens)
- [x] Error handling — try/except + messagebox.showerror on all export paths
- [x] 27 tests for exporter (165/165 total passing)
---