Shop-Floor Tablet Kiosk
Operator MO start/stop, scrap, component scan and quality checks
Odoo's Enterprise Shop Floor kiosk keeps operators out of the back office, but it is Enterprise-only, leaving Community manufacturers to report production through complex desk screens or paper. That means late, inaccurate timings, missed scrap and quality data captured hours after the fact. This app gives operators a tablet station with PIN login to start and stop real work orders, scan and consume components by barcode, register validated scrap and log quality checks at the point of work. Every action posts to genuine MRP and Stock records, and supervisor dashboards expose live throughput and fail rates, all on standard Community.
Key Features
Kiosk stations with PIN login
gb.kiosk.station ties each tablet to an mrp.workcenter with require_pin, allow_scrap and allow_quality toggles. gb.kiosk.operator stores a SHA-256 pin_hash (never the raw PIN) and a badge_code; the authenticate method matches an operator by badge and verified PIN to open a session.
Operator session tracking
open_session creates one gb.kiosk.session per operator and station, blocking a second operator while one is in use. _compute_duration tracks live login-to-logout minutes, and action_close stops any running work order and stamps logout_time.
Work order start, pause and finish
start_workorder validates the order belongs to the station's work centre then calls button_start on mrp.workorder; pause_workorder uses button_pending and finish_workorder sets qty_producing before button_finish. Each returns a compact _kiosk_state dict for the tablet UI.
Barcode component consumption
scan_component looks up product.product by barcode, finds the matching move_raw_id on the active production and adds the scanned quantity to move.quantity, marking it picked. get_components_state returns per-component consumed-vs-required progress for the screen.
Scrap straight from the floor
register_scrap creates and validates a real stock.scrap linked back to the session and work order via the kiosk_session_id field. It honours the station allow_scrap flag and rejects non-positive quantities, so scrap is recorded at the point of work rather than re-keyed later.
In-line quality checks
record_quality writes a gb.kiosk.quality.check with a pass/fail/N-A result, a numeric measure and a note, linked to the work order and production. get_failure_rate aggregates pass/fail counts by work centre for quality reporting.
Supervisor floor dashboards
The Floor Dashboard menu (Kiosk Manager only) lists every active station with live operator, pending work orders, closed-session minutes and total scrap in one view. A Force Close Session button on each station lets a manager clear a stale session immediately. get_productivity and get_station_throughput also expose per-session stats through the JSON API.
Real MRP transactions, Community only
mrp.workorder, mrp.workcenter and stock.scrap are inherited so consumption, durations and scrap post to genuine Odoo records, not a shadow log. get_kiosk_kpis adds pending/in-progress/live-operator KPIs per work centre, all on standard Community MRP and Stock with no Enterprise subscription.
Use Cases
Screenshots
Operators
Quality Checks
Sessions
Kiosk Stations
Why Choose This Module
The Enterprise Shop Floor kiosk keeps operators out of the back office — but it's Enterprise-only. This module brings the same workflow to Community: operators log in at a station with a PIN, run work orders with live timers, scan and consume components, register real scrap and complete quality checks, all through JSON controller endpoints a tablet web client can connect to, plus full Odoo back-office management views.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: mrp, stock
- Support: support@pokutsoft.com
Update date: 2026-07-02