## Summary
Allow color, price, and weight to be set on individual spools, optionally overriding filament defaults.
## Upstream Issues
- https://github.com/Donkie/Spoolman/issues/473 (3 thumbs up) - Color on spool
- https://github.com/Donkie/Spoolman/issues/292 (2 thumbs up) - Price/weight on spool
## Problem
Current model: Color, price, net weight are on Filament. Each variant requires a separate Filament entry.
Example of current mess:
- Prusament PETG Orange 1kg
- Prusament PETG Orange 2kg
- Prusament PETG Jet Black 1kg
- (repeat for every color AND size...)
But print parameters (temps, PA, flow) are the SAME!
## Proposed Solution
### Spool-Level Override Fields
```python
class Spool(Base):
# existing fields...
color_hex: Optional[str] # override filament color
price: Optional[float] # override filament price
initial_weight: Optional[float] # override filament net weight
@property
def effective_color(self):
return self.color_hex or self.filament.color_hex
@property
def effective_price(self):
return self.price or self.filament.price
```
### Benefits
- One "Prusament PETG" filament with shared settings
- Add spools of any color/size without duplicating filament
- Easier calibration maintenance (update once, applies to all)
- Buy 1kg and 2kg spools of same filament
## UI Changes
- Spool create/edit: optional color picker, price, weight fields
- Default to filament values, clear to override
- Show effective values in lists
- Indicate when value is overridden vs inherited
## Related
- #16 Filter by Color
- #20 Gallery View
- #32 SpoolType Model
tonym
changed title from Color on Spool Level (Override Filament Color) to Spool-Level Overrides (Color, Price, Weight)2026-01-16 05:11:37 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Allow color, price, and weight to be set on individual spools, optionally overriding filament defaults.
Upstream Issues
Problem
Current model: Color, price, net weight are on Filament. Each variant requires a separate Filament entry.
Example of current mess:
But print parameters (temps, PA, flow) are the SAME!
Proposed Solution
Spool-Level Override Fields
Benefits
UI Changes
Related
Color on Spool Level (Override Filament Color)to Spool-Level Overrides (Color, Price, Weight)