docs(fusion_plating_shopfloor): deprecation markers on legacy endpoints (P3.6)
Plan task P3.6 — pragmatic deviation. The plan called for stubs that internally route to /fp/landing/kanban + reshape; in practice the legacy fp_shopfloor_tablet OWL component (still registered, just unhooked from the menu) consumes a much richer payload (my_queue, active_wo, baths, bake_windows, gates, holds, pending_qcs, stations) than /fp/landing/kanban returns. Gutting tablet_overview to a stub would break that legacy component. Instead: add explicit DEPRECATED markers + INFO log lines on the three endpoints (tablet_overview, plant_overview, queue). Bodies stay intact so the legacy components keep working until Phase 5 cleanup retires both endpoints AND the legacy OWL components together. Note: /fp/shopfloor/plant_overview/move_card is NOT deprecated — the new Landing component still uses it for drag-and-drop. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -620,15 +620,26 @@ class FpShopfloorController(http.Controller):
|
|||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Tablet Overview — one-shot dashboard payload
|
# Tablet Overview — one-shot dashboard payload
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
# DEPRECATED (Phase 3 tablet redesign — 2026-05-22).
|
||||||
|
# New Shop Floor Landing client action (fp_shopfloor_landing) uses
|
||||||
|
# /fp/landing/kanban. The Tablet Station menu now points at the new
|
||||||
|
# surface. This endpoint stays live as long as the legacy
|
||||||
|
# fp_shopfloor_tablet OWL component is still registered — it consumes
|
||||||
|
# the rich payload (my_queue, active_wo, baths, bake_windows, gates,
|
||||||
|
# holds, pending_qcs, stations). Phase 5 cleanup will retire both the
|
||||||
|
# legacy component and this endpoint together.
|
||||||
@http.route('/fp/shopfloor/tablet_overview', type='jsonrpc', auth='user')
|
@http.route('/fp/shopfloor/tablet_overview', type='jsonrpc', auth='user')
|
||||||
def tablet_overview(self, station_id=None, facility_id=None):
|
def tablet_overview(self, station_id=None, facility_id=None):
|
||||||
"""Return a rich dashboard snapshot for the Tablet Station page.
|
"""[DEPRECATED] Legacy Tablet Station dashboard payload.
|
||||||
|
|
||||||
Data layer: fp.job + fp.job.step. Field names on the response
|
New consumers should use /fp/landing/kanban via the
|
||||||
keep the legacy `_wo` suffix where they were referenced from the
|
fp_shopfloor_landing client action (Phase 3 tablet redesign).
|
||||||
XML so the template doesn't need to be rewritten — internally
|
|
||||||
these now point at fp.job.step rows.
|
|
||||||
"""
|
"""
|
||||||
|
_logger.info(
|
||||||
|
"DEPRECATED /fp/shopfloor/tablet_overview called by uid %s — "
|
||||||
|
"Phase 5 cleanup will remove this endpoint.",
|
||||||
|
request.env.uid,
|
||||||
|
)
|
||||||
env = request.env
|
env = request.env
|
||||||
user = env.user
|
user = env.user
|
||||||
|
|
||||||
@@ -1002,8 +1013,20 @@ class FpShopfloorController(http.Controller):
|
|||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Operator queue snapshot (legacy fusion.plating.operator.queue helper)
|
# Operator queue snapshot (legacy fusion.plating.operator.queue helper)
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
# DEPRECATED (Phase 3 tablet redesign — 2026-05-22).
|
||||||
|
# The new fp_shopfloor_landing component does NOT use this endpoint;
|
||||||
|
# it uses /fp/landing/kanban which already filters per station. The
|
||||||
|
# only remaining consumer is the legacy fp_shopfloor_tablet OWL
|
||||||
|
# component (still registered, no menu pointing at it). Phase 5
|
||||||
|
# cleanup will retire both this endpoint and the legacy component
|
||||||
|
# together — no replacement, the kanban supersedes it entirely.
|
||||||
@http.route('/fp/shopfloor/queue', type='jsonrpc', auth='user')
|
@http.route('/fp/shopfloor/queue', type='jsonrpc', auth='user')
|
||||||
def queue(self, facility_id=None):
|
def queue(self, facility_id=None):
|
||||||
|
_logger.info(
|
||||||
|
"DEPRECATED /fp/shopfloor/queue called by uid %s — "
|
||||||
|
"Phase 5 cleanup will remove this endpoint.",
|
||||||
|
request.env.uid,
|
||||||
|
)
|
||||||
Queue = request.env.get('fusion.plating.operator.queue')
|
Queue = request.env.get('fusion.plating.operator.queue')
|
||||||
if Queue is None or not hasattr(Queue, 'build_for_user'):
|
if Queue is None or not hasattr(Queue, 'build_for_user'):
|
||||||
# Fallback: synthesize the queue directly from fp.job.step.
|
# Fallback: synthesize the queue directly from fp.job.step.
|
||||||
@@ -1093,14 +1116,26 @@ class FpShopfloorController(http.Controller):
|
|||||||
|
|
||||||
return {'ok': True}
|
return {'ok': True}
|
||||||
|
|
||||||
|
# DEPRECATED (Phase 3 tablet redesign — 2026-05-22).
|
||||||
|
# The new fp_shopfloor_landing client action has an "All Plant" mode
|
||||||
|
# that supersedes the standalone Plant Overview surface. Old endpoint
|
||||||
|
# stays live for the move_card sibling endpoint and the legacy
|
||||||
|
# fp_plant_overview OWL component (still registered but unhooked
|
||||||
|
# from the menu). Phase 5 cleanup will retire both together.
|
||||||
@http.route('/fp/shopfloor/plant_overview', type='jsonrpc', auth='user')
|
@http.route('/fp/shopfloor/plant_overview', type='jsonrpc', auth='user')
|
||||||
def plant_overview(self, facility_id=None, search=None):
|
def plant_overview(self, facility_id=None, search=None):
|
||||||
"""Return active fp.job.step rows grouped by fp.work.centre.
|
"""[DEPRECATED] Legacy Plant Overview payload.
|
||||||
|
|
||||||
Cards are individual fp.job.step rows in ready / in_progress /
|
New consumers should use /fp/landing/kanban with mode='all_plant'
|
||||||
paused state. Columns are fp.work.centre rows; an "Unassigned"
|
via the fp_shopfloor_landing client action (Phase 3 tablet
|
||||||
pseudo-column collects steps without a work centre.
|
redesign). Note: /fp/shopfloor/plant_overview/move_card is NOT
|
||||||
|
deprecated — the Landing component still uses it for drag-drop.
|
||||||
"""
|
"""
|
||||||
|
_logger.info(
|
||||||
|
"DEPRECATED /fp/shopfloor/plant_overview called by uid %s — "
|
||||||
|
"Phase 5 cleanup will remove this endpoint.",
|
||||||
|
request.env.uid,
|
||||||
|
)
|
||||||
env = request.env
|
env = request.env
|
||||||
search = (search or '').strip().lower()
|
search = (search or '').strip().lower()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user