mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 05:35:30 +02:00
[PR #588] [CLOSED] Feature/plate automation #1075
Labels
No labels
A1
automated
automated
bug
bug
Closed due to inactivity
contrib
dependencies
dependencies
duplicate
enhancement
feedback
hold
invalid
Notes
P1S
pull-request
security
security
ThumbsUp
user-report
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/bambuddy#1075
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/maziggy/bambuddy/pull/588
Author: @pleite
Created: 3/4/2026
Status: ❌ Closed
Base:
0.2.2b1← Head:feature/plateAutomation📝 Commits (9)
e8dd725Implement plate automation feature - add automation service, models, API, UI, and i18n support88ffbf0test: add plate automation backend/frontend coverage0bac6abImplement plate automation feature - add automation service, models, API, UI, and i18n supportcb743d7Merge test/plate-automation-coverage into feature/plateAutomationaa92976docs: add plate automation feature to changelog for v0.2.2b1c44ce6fFix PR review issues: add missing i18n keys and async cleanup51e4e77Add i18n translations for PlateAutomationModal field labelsbcb260dFix MD5 security warnings: add usedforsecurity=False parameter7bd5373Merge branch '0.2.2b1' into feature/plateAutomation📊 Changes
25 files changed (+1561 additions, -11 deletions)
View changed files
📝
CHANGELOG.md(+12 -0)➕
backend/app/api/routes/automation.py(+106 -0)📝
backend/app/core/database.py(+8 -0)📝
backend/app/main.py(+2 -0)➕
backend/app/models/automation.py(+35 -0)📝
backend/app/models/printer.py(+5 -0)➕
backend/app/schemas/automation.py(+35 -0)📝
backend/app/schemas/printer.py(+3 -0)➕
backend/app/services/automation.py(+251 -0)📝
backend/app/services/background_dispatch.py(+154 -6)➕
backend/tests/integration/test_automation_api.py(+106 -0)➕
backend/tests/unit/services/test_automation.py(+142 -0)📝
frontend/src/__tests__/api/client.test.ts(+110 -0)➕
frontend/src/__tests__/components/PlateAutomationModal.test.tsx(+159 -0)📝
frontend/src/api/client.ts(+32 -0)➕
frontend/src/components/PlateAutomationModal.tsx(+144 -0)📝
frontend/src/components/PrinterQueueWidget.tsx(+9 -3)📝
frontend/src/i18n/locales/de.ts(+23 -0)📝
frontend/src/i18n/locales/en.ts(+23 -0)📝
frontend/src/i18n/locales/fr.ts(+23 -0)...and 5 more files
📄 Description
Description
This pull request introduces Plate Automation, a comprehensive feature for customizable G-code automation in Bambuddy. Users can now configure start and end automation code snippets per printer that are automatically injected into G-code files before upload.
Related Issue
Implements #184 and #422
Type of Change
Changes Made
Backend
POST/GET/PUT/DELETE /api/v1/printers/{printer_id}/automationfor CRUD operationsAutomationServicewith file rewriting logic and cachingPlateAutomationmodel with start/end codes, detection strings, and anchor configurationbackground_dispatch.pypipeline during file uploadFrontend
PlateAutomationModalcomponent for configuration and testingTesting
Screenshots
Testing
Test Coverage
✅ All tests passing:
Checklist
Additional Notes
Test Coverage
✅ All tests passing:
Implementation Details
Backend Architecture
The
AutomationServiceprovides the core functionality:Frontend Integration
The
PlateAutomationModalprovides an intuitive interface:Database Schema
The
PlateAutomationmodel stores:API Endpoints
Breaking Changes
None. This feature is fully backward compatible.
Migration Notes
Deployment Considerations
Notes
Checklist
Related Issues
None identified - this is a new feature.
Reviewers Notes
This feature is completely isolated and doesn't affect any existing functionality.
Files Changed
backend/app/api/routes/automation.py- API endpoints (NEW)backend/app/models/automation.py- Database model (NEW)backend/app/schemas/automation.py- Pydantic schemas (NEW)backend/app/services/automation.py- Automation service (NEW)backend/app/services/background_dispatch.py- Integration with dispatch pipelinebackend/app/models/printer.py- Added automation relationshipbackend/app/schemas/printer.py- Added automation schemabackend/app/core/database.py- Database initializationbackend/app/main.py- Route registrationbackend/tests/integration/test_automation_api.py- Integration tests (NEW)backend/tests/unit/services/test_automation.py- Unit tests (NEW)frontend/src/components/PlateAutomationModal.tsx- Configuration UI (NEW)frontend/src/components/PrinterQueueWidget.tsx- Minor updatesfrontend/src/pages/PrintersPage.tsx- Modal integrationfrontend/src/api/client.ts- API client methods (NEW)frontend/src/__tests__/api/client.test.ts- API client tests (NEW)frontend/src/__tests__/components/PlateAutomationModal.test.tsx- Component tests (NEW)frontend/src/i18n/locales/en.ts- English translationsfrontend/src/i18n/locales/de.ts- German translationsfrontend/src/i18n/locales/fr.ts- French translationsfrontend/src/i18n/locales/it.ts- Italian translationsfrontend/src/i18n/locales/ja.ts- Japanese translationsfrontend/src/i18n/locales/pt-BR.ts- Portuguese translationsCHANGELOG.md- Updated with feature detailsStatistics
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.