Backend (api/routes.py) — replace sample data with live reads/writes:
- GET /overview reads production.temper_tracking (done carts, plant-scoped,
windowed, newest-first, one row per ttId); each order's 5-station belt is
derived from planned timestamps vs NOW(), faithful to fastpress
_temper_aggregates_all. sample:false.
- GET /reasons reads settings.reject_reasons (active=1).
- POST /reject WRITES production.rejects keyed by the ORDER (rejOrdernumber +
rejPress, press taken from the body) — an un-scoped port of PressV
send_reject; no rejTtId column needed (ttId is context-only). Failures
return HTTP 200 + {success:false}, NOT 4xx/5xx.
Belt: the single pre-oven buffer (Wagenzeit) shows under Unterwegs; Wagen=0.
Frontend — never report an unconfirmed booking as success:
- store.submitReject returns the gateway's own {success} and reports failure on
a transport error instead of faking success.
- store.refresh keeps the last REAL data on a transient poll error (only a cold
start falls back to demo carts) so a live terminal never shows fabricated carts.
- the failure toast is now red (was always green).
Verified live against cdbserv15 (12 carts, 25 reasons, INSERT round-trip).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
607 B
Plaintext
31 lines
607 B
Plaintext
# Python bytecode (this repo is also a gateway page-module — imported at runtime)
|
|
__pycache__/
|
|
*.py[cod]
|
|
|
|
# Dependencies
|
|
node_modules/
|
|
.pnp
|
|
.pnp.js
|
|
|
|
# Local env / secrets — NEVER commit the real .npmrc (holds the registry token)
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
.npmrc
|
|
!.npmrc.example
|
|
|
|
# Editor / OS
|
|
.DS_Store
|
|
*.local
|
|
.idea/
|
|
.vscode/*
|
|
!.vscode/extensions.json
|
|
|
|
# Build caches
|
|
node_modules/.tmp/
|
|
*.tsbuildinfo
|
|
|
|
# NOTE: dist/ is intentionally NOT ignored. The gateway serves the committed
|
|
# build (the deploy host has no Node toolchain). Rebuild with `npm run build`
|
|
# and commit dist/ whenever the app changes.
|