Add the printedparts plugin: 3D-printed parts storefront and kiosk

Catalog with photos and append-only print-file revisions, a stock
ledger attributing every take/restock/adjust to a badge-resolved
employee, a touch kiosk (scan bin, scan badge, keypad quantity) with a
deliberately open decrement-only take endpoint, 1x0.5in CODE128 bin
labels, low-stock email alerts to selected users, roles, or addresses,
and stock/consumption/by-person reports with a cache-vs-ledger
reconcile. Ships disabled; enable per site. Contract 0.13.0 adds the
mailer and the User/Role models to the plugin surface.
This commit is contained in:
2026-07-17 09:29:01 -04:00
parent 2fda94f67a
commit 11c8d79ba4
35 changed files with 3231 additions and 3 deletions

View File

@@ -44,6 +44,8 @@ from shopdb.core.models import (
OperatingSystem,
AssetRelationship,
RelationshipType,
User,
Role,
)
# Response + pagination helpers for plugin API blueprints
@@ -78,6 +80,7 @@ from shopdb.core.services.dualpath import (
# Legacy employee directory lookup (read-only) used by notifications
from shopdb.utils.employee_db import employee_connection
from shopdb.utils.mailer import send_email, send_alert
# CMMC USB check-in/out database (read-write) used by the usb plugin
from shopdb.utils.cmmc_usb_db import cmmc_usb_connection
@@ -266,6 +269,10 @@ __all__ = [
'parse_import_datetime',
# Legacy employee directory
'employee_connection',
'send_email',
'send_alert',
'User',
'Role',
# CMMC USB check-in/out database
'cmmc_usb_connection',
]