From 0556be9e3b7710a84878a6d7f8336ba93241f4a4 Mon Sep 17 00:00:00 2001 From: tonym Date: Wed, 21 Jan 2026 21:40:58 -0600 Subject: [PATCH] docs: Update CLAUDE.md with completed features #9, #12, #13 Mark issues 9, 12, 13 as done and add implementation details. Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 47af507..62359fb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -134,11 +134,11 @@ This is a fork with UX improvements. Issues are tracked on the Gitea instance ab | 6 | Spool Adjustment History | ✅ DONE | | 7 | 3dfilamentprofiles Integration | ❌ REMOVED | | 8 | (duplicate of #7) | ✅ DONE | -| 9 | Hierarchical Locations (Room/Bin) | **Open** | +| 9 | Hierarchical Locations (Room/Bin) | ✅ DONE | | 10 | Database Import/Export | ✅ DONE | | 11 | Slicer Integration / Print Jobs | ✅ DONE | -| 12 | Redesign Home Page Dashboard | **Open** | -| 13 | Batch Operations (Multi-Select Edit) | **Open** | +| 12 | Redesign Home Page Dashboard | ✅ DONE | +| 13 | Batch Operations (Multi-Select Edit) | ✅ DONE | | 14 | Extra Weight Field (DryPods, etc.) | **Open** | | 15 | Spool Count per Filament in List | **Open** | @@ -355,6 +355,62 @@ Added optional color column to the spool list with filtering capability. - Multi-select filtering (can filter by multiple colors) - Column hidden by default (enable via column selector) +### Issue #9 Complete - Hierarchical Locations + +Storage locations can now be organized in a tree structure (Room > Shelf > Bin). + +**Backend:** +- `spoolman/database/models.py` - Added `Location` model with self-referential parent +- `spoolman/database/location.py` - CRUD operations, tree building, full path resolution +- `spoolman/api/v1/location.py` - REST API for locations +- `migrations/versions/2025_01_21_0100-*.py` - Migration for location table + +**Frontend:** +- `client/src/components/LocationTreeSelect.tsx` - Tree-based location picker +- `client/src/components/LocationCreateModal.tsx` - Inline location creation + +**Features:** +- Hierarchical structure with parent/child relationships +- Location types: room, shelf, bin, drawer, box, other +- Legacy flat location string preserved for backward compatibility +- API endpoints: GET /location, GET /location/tree, POST/PATCH/DELETE + +### Issue #12 Complete - Dashboard Redesign + +Redesigned home page with better visualizations and quick stats. + +**Backend:** No changes needed - uses existing endpoints. + +**Frontend:** +- `client/src/pages/home/index.tsx` - Refactored layout +- `client/src/pages/home/components/AlertCards.tsx` - Low stock, pending jobs, needs weighing alerts +- `client/src/pages/home/components/MaterialDistributionChart.tsx` - Pie chart by material (recharts) +- `client/src/pages/home/components/QuickStats.tsx` - Total spools, filaments, vendors, weight + +**Dependencies:** +- Added `recharts` package for charts + +### Issue #13 Complete - Batch Operations + +Multi-select spools with bulk archive/delete/move actions. + +**Backend:** +- `spoolman/api/v1/spool.py` - Added bulk endpoints: + - POST /spool/bulk/archive + - POST /spool/bulk/delete + - POST /spool/bulk/update + +**Frontend:** +- `client/src/pages/spools/list.tsx` - Added row selection +- `client/src/pages/spools/components/BatchActionBar.tsx` - Floating action bar +- `client/src/pages/spools/functions.tsx` - Bulk helper functions + +**Features:** +- Checkbox selection with select-all +- Floating action bar shows when items selected +- Archive, unarchive, delete, move to location +- Confirmation modals for all destructive actions + --- ## Deployment @@ -384,6 +440,3 @@ When creating a filament via the inline modal on spool create page, the select d ### Issue #7 - 3dfilamentprofiles Integration REMOVED The 3dfilamentprofiles.com website has Vercel bot protection that blocks automated requests. Their GitHub repo (jklewa/filament-profiles-data) only provides sample data (~3 filaments). Since SpoolmanDB already has 6,957+ filaments from major brands, the 3dfp integration was removed rather than maintaining dead code. - -### Future: Issue #9 - Hierarchical Locations -Add room/bin/shelf support for locations. See Gitea issue #9 for details.