Commit Graph

352 Commits

Author SHA1 Message Date
671d3bd3d1 feat: Add 3dfilamentprofiles.com integration (Issue #7)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
- Backend: Added ExternalSource enum, Filament3DFP model, and transform function
- Backend: Updated _sync() to fetch from both SpoolmanDB and 3dfilamentprofiles
- Frontend: Added source tabs to FilamentImportModal (All/SpoolmanDB/3DFP)
- Frontend: Updated ExternalFilament interface with source and temp range fields
- Frontend: Updated filament import handler to use temp range fields

Also includes:
- Dev mode styling (teal theme, DEV badge and banner)
- Translation keys for source filtering

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 21:03:25 -06:00
d804329b77 feat: Add spool adjustment history tracking (#6)
Track history of all spool weight/length adjustments with timestamps and comments:

Backend:
- Add SpoolAdjustment database model with spool_id, timestamp, type, value, comment
- Add Alembic migration for spool_adjustment table
- Add SpoolAdjustment Pydantic model for API responses
- Update use_weight, use_length, and measure functions to record adjustments
- Add GET /api/v1/spool/{id}/adjustments endpoint for history retrieval
- Add optional comment parameter to use/measure endpoints

Frontend:
- Add ISpoolAdjustment interface to spool model
- Add collapsible adjustment history table to spool show page
- Display timestamp, type (weight/length), amount, and comment
- Add translation keys for history table

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:18:56 -06:00
3451996a8f feat: Add temperature ranges for extruder and bed temps (#5)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Store extruder and bed temperatures as min/max ranges instead of
single values for more accurate filament specifications.

Backend changes:
- Add 4 new columns: settings_extruder_temp_min/max, settings_bed_temp_min/max
- Keep old columns for backward compatibility (marked deprecated)
- Alembic migration copies existing values to both min and max
- Update Pydantic models and API endpoints

Frontend changes:
- Filament model updated with new fields
- Create form uses min/max input pairs with Space.Compact
- Import from external DB populates both min and max with same value
- Label template updated to show ranges: "ET: 190-220 °C"
- Template help includes new tags

Labels now display temperature ranges like "190-220°C" which is more
useful for printing than a single recommended value.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:05:02 -06:00
d17a66b0ec feat: Add configurable QR code sizing options (#3)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Addresses https://github.com/Donkie/Spoolman/issues/671

Changes:
- Remove fixed 50% max-width constraint on QR code container
- Add qrCodePadding setting (0-10mm, default 2mm) for white space
- Add qrCodeMaxWidth setting (0-100%, 0 = auto/fit-content)
- Add UI controls (slider + input) for both new settings
- Settings are disabled when QR code is turned off

The previous behavior forced QR codes to 50% width when label text
was shown, wasting label space on small labels. New default uses
fit-content for optimal sizing while allowing manual control.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:57:52 -06:00
478806dcc8 feat: Add smart density defaults based on material type (#2)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Auto-fill density when entering material type in filament forms:
- Add materialDefaults.ts with standard densities for common materials
  (PLA, ABS, PETG, TPU, PC, etc.)
- Material field now uses AutoComplete with suggestions
- Density auto-fills on material select or blur (fuzzy matching)
- New filaments default to 1.75mm diameter and 1.24 g/cm³ (PLA)
- Applied to both full filament create page and quick create modal

Reduces tedious data entry for common materials while still allowing
custom values for specialty filaments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:54:30 -06:00
ea5b06493c feat: Add inline creation modals for filament and vendor (#1)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
When creating a spool, users can now create a new filament directly
from the filament dropdown without leaving the page. Similarly, when
creating a filament, users can create a new vendor inline.

New components:
- VendorCreateModal: Simple modal for quick vendor creation
- FilamentCreateModal: Modal with essential fields + nested vendor creation

Changes:
- Added dropdownRender to filament Select in spool create page
- Added dropdownRender to vendor Select in filament create page
- Added translation keys for success messages and placeholders
- Pre-fills sensible defaults (diameter 1.75mm, density 1.24 g/cm³)

Closes #1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:33:25 -06:00
Donkie
848f5dcc94 Cleaned up favicons, PWA icon fixes 2026-01-06 00:28:31 +01:00
Donkie
edda1e965a some fixes 2026-01-06 00:18:20 +01:00
JakobGue
185c8b07e0 remove show spool count option from settings 2026-01-04 00:54:19 +01:00
JakobGue
572a5eea27 Merge branch 'master' into spool_count 2026-01-02 16:02:00 +01:00
Vegard Fladby
6f05ce81c7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 80.2% (231 of 288 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 78.1% (225 of 288 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 75.3% (217 of 288 strings)

Co-authored-by: Vegard Fladby <vegard@fladby.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/nb_NO/
Translation: Spoolman/Web Client
2026-01-01 23:00:59 +01:00
vjurka
a533f2556f Translated using Weblate (Lithuanian)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: vjurka <v@jurka.lt>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/lt/
Translation: Spoolman/Web Client
2026-01-01 23:00:58 +01:00
Bazzofski
c88d443782 Translated using Weblate (French)
Currently translated at 98.9% (285 of 288 strings)

Co-authored-by: Bazzofski <bastien.cocheril@laposte.net>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/fr/
Translation: Spoolman/Web Client
2026-01-01 23:00:57 +01:00
Archit Jain
3cd1ff6ac4 Translated using Weblate (Hindi (Latin script))
Currently translated at 3.8% (11 of 288 strings)

Added translation using Weblate (Hindi (Latin script))

Co-authored-by: Archit Jain <archit.jain38@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/hi_Latn/
Translation: Spoolman/Web Client
2026-01-01 23:00:56 +01:00
Giadej
a41b1df76e Translated using Weblate (Italian)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Giadej <Giadej@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/it/
Translation: Spoolman/Web Client
2026-01-01 23:00:56 +01:00
Marek Dvorný
bed385b796 Translated using Weblate (Czech)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Marek Dvorný <lupickatec@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/cs/
Translation: Spoolman/Web Client
2026-01-01 23:00:55 +01:00
Dr_Perry_Coke
2508210469 Translated using Weblate (Russian)
Currently translated at 99.6% (287 of 288 strings)

Co-authored-by: Dr_Perry_Coke <dr.perrycoke@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ru/
Translation: Spoolman/Web Client
2026-01-01 23:00:54 +01:00
Cristian
fae3a92f5e Translated using Weblate (Romanian)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Cristian <opreacristiann@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ro/
Translation: Spoolman/Web Client
2026-01-01 23:00:54 +01:00
Yücelen Gül
37fcad4a0a Translated using Weblate (Turkish)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Added translation using Weblate (Turkish)

Co-authored-by: Yücelen Gül <yuceleng@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/tr/
Translation: Spoolman/Web Client
2026-01-01 23:00:53 +01:00
Jose
4d62eb24c1 Translated using Weblate (Spanish)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Jose <jcueria@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/es/
Translation: Spoolman/Web Client
2026-01-01 23:00:52 +01:00
dimquea
05f0d7fd20 Translated using Weblate (Russian)
Currently translated at 99.6% (287 of 288 strings)

Co-authored-by: dimquea <dimquea@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ru/
Translation: Spoolman/Web Client
2026-01-01 23:00:51 +01:00
KnightArch
3666c10117 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: KnightArch <knightarch@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt_BR/
Translation: Spoolman/Web Client
2026-01-01 23:00:51 +01:00
rupefelo
902fbbaec2 Translated using Weblate (Portuguese)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: rupefelo <rupefelo@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt/
Translation: Spoolman/Web Client
2026-01-01 23:00:50 +01:00
Justus Kagerer
b10c1e1aef Translated using Weblate (German)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Justus Kagerer <justus-kagerer@web.de>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2026-01-01 23:00:50 +01:00
derSchreiber
a6c4e8c49b Translated using Weblate (German)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: derSchreiber <jan@machen-wir.net>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2026-01-01 23:00:49 +01:00
JakobGue
d3181382ae add spool count in locations with a setting to enable / disable the display 2025-06-21 19:26:39 +02:00
தமிழ்நேரம்
e1923b8083 Translated using Weblate (Tamil)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ta/
Translation: Spoolman/Web Client
2025-06-16 00:02:04 +00:00
KnightArch
3e6750765f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: KnightArch <knightarch@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt_BR/
Translation: Spoolman/Web Client
2025-06-16 00:02:03 +00:00
Julia 🌸🏳️‍⚧️
13d320ab1d Translated using Weblate (Polish)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Julia 🌸🏳️‍⚧️ <daviteusz0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pl/
Translation: Spoolman/Web Client
2025-06-16 00:02:02 +00:00
Miloslav Kos
d11bc1a6bb Translated using Weblate (Czech)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Miloslav Kos <kos.m@post.cz>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/cs/
Translation: Spoolman/Web Client
2025-06-16 00:02:01 +00:00
Donkie
d27a967737 Fixed pt-BR json file 2025-06-10 22:08:45 +02:00
Donkie
8712ad4840 Fixed en lang json 2025-06-10 22:04:06 +02:00
Tobias Maschek
ff473429c7 Translated using Weblate (German)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: Tobias Maschek <web@jemx.net>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2025-06-08 11:47:26 +02:00
Donkie
8bfb263858 Merge branch 'master' into master 2025-05-31 19:52:01 +02:00
rupefelo
fb355945cb Translated using Weblate (Portuguese)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: rupefelo <rupefelo@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00
Ivo Grossen
5c8e8b9d11 Translated using Weblate (German)
Currently translated at 99.6% (285 of 286 strings)

Co-authored-by: Ivo Grossen <ivo.grossen95@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00
தமிழ்நேரம்
d975020260 Translated using Weblate (Tamil)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ta/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00
Samuel Wang
fdb34f5c5e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: Samuel Wang <imhsaw@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/zh_Hans/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00
Nícolas Pastorello
b1d061cf08 Update common.json 2025-05-05 16:44:26 -03:00
Nícolas Pastorello
3e8b3526e2 Update common.json 2025-05-05 16:24:46 -03:00
dimquea
8e8cf7eaaa Translated using Weblate (Russian)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: dimquea <dimquea@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ru/
Translation: Spoolman/Web Client
2025-04-12 17:49:26 +00:00
Arvi Saluste
4c876d7aef Translated using Weblate (Estonian)
Currently translated at 17.4% (50 of 286 strings)

Co-authored-by: Arvi Saluste <fredi.at@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/et/
Translation: Spoolman/Web Client
2025-04-12 17:49:25 +00:00
KnightArch
97eddadb3b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: KnightArch <knightarch@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt_BR/
Translation: Spoolman/Web Client
2025-04-12 17:49:25 +00:00
KnightArch
db59fce383 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (286 of 286 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (286 of 286 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (286 of 286 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (286 of 286 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (286 of 286 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.6% (285 of 286 strings)

Co-authored-by: KnightArch <knightarch@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt_BR/
Translation: Spoolman/Web Client
2025-03-18 20:37:08 +00:00
Maurice Kevenaar
88c25d9fea Translated using Weblate (Dutch)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: Maurice Kevenaar <maurice@kevenaar.name>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/nl/
Translation: Spoolman/Web Client
2025-03-16 17:42:05 +01:00
Yuta Imada
8cc485ac96 Translated using Weblate (Japanese)
Currently translated at 100.0% (286 of 286 strings)

Translated using Weblate (Japanese)

Currently translated at 59.0% (169 of 286 strings)

Translated using Weblate (Japanese)

Currently translated at 34.9% (100 of 286 strings)

Added translation using Weblate (Japanese)

Co-authored-by: Yuta Imada <1@yutaimd.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ja/
Translation: Spoolman/Web Client
2025-03-16 17:42:04 +01:00
தமிழ்நேரம்
2761829db8 Translated using Weblate (Tamil)
Currently translated at 100.0% (286 of 286 strings)

Added translation using Weblate (Tamil)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ta/
Translation: Spoolman/Web Client
2025-03-05 12:09:14 +01:00
Julia 🌸
4a1358a438 Translated using Weblate (Polish)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: Julia 🌸 <daviteusz0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pl/
Translation: Spoolman/Web Client
2025-03-05 12:09:13 +01:00
Miloslav Kos
e54608f139 Translated using Weblate (Czech)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: Miloslav Kos <kos.m@post.cz>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/cs/
Translation: Spoolman/Web Client
2025-03-05 12:09:13 +01:00
Donkie
58a6233e7b Merge pull request #582 from ErikMichelson/feat/round-prices-setting
Add setting to toggle rounding of prices
2025-02-24 20:56:44 +01:00