fusion_plating: add process recipe system with OWL tree editor (v19.0.2.0.0)

New model fusion.plating.process.node with _parent_store hierarchy for
defining reusable plating recipes. Node types: recipe, sub_process,
operation, step. Includes companion model for operator input definitions.

Full OWL tree editor (client action) with:
- Hierarchical tree with connector lines and type-coloured borders
- Click-to-edit side panel with save
- Add/delete child nodes inline
- Drag & drop reorder and reparent
- Theme-aware SCSS (light + dark mode)
- Demo data: Electroless Nickel Plating — Steel Line (30+ nodes)

Backend: 7 JSON-RPC endpoints for tree CRUD, reorder, move, duplicate.
Security: 3-tier ACL (operator read / supervisor write / manager full).
Menu: Process Recipes under Plating > Operations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-12 14:29:58 -04:00
parent e146daf4c8
commit a7d224899a
13 changed files with 2114 additions and 0 deletions

View File

@@ -26,3 +26,9 @@ access_fp_bath_log_manager,fp.bath.log.manager,model_fusion_plating_bath_log,gro
access_fp_bath_log_line_operator,fp.bath.log.line.operator,model_fusion_plating_bath_log_line,group_fusion_plating_operator,1,1,1,0
access_fp_bath_log_line_supervisor,fp.bath.log.line.supervisor,model_fusion_plating_bath_log_line,group_fusion_plating_supervisor,1,1,1,0
access_fp_bath_log_line_manager,fp.bath.log.line.manager,model_fusion_plating_bath_log_line,group_fusion_plating_manager,1,1,1,1
access_fp_process_node_operator,fp.process.node.operator,model_fusion_plating_process_node,group_fusion_plating_operator,1,0,0,0
access_fp_process_node_supervisor,fp.process.node.supervisor,model_fusion_plating_process_node,group_fusion_plating_supervisor,1,1,1,0
access_fp_process_node_manager,fp.process.node.manager,model_fusion_plating_process_node,group_fusion_plating_manager,1,1,1,1
access_fp_process_node_input_operator,fp.process.node.input.operator,model_fusion_plating_process_node_input,group_fusion_plating_operator,1,0,0,0
access_fp_process_node_input_supervisor,fp.process.node.input.supervisor,model_fusion_plating_process_node_input,group_fusion_plating_supervisor,1,1,1,0
access_fp_process_node_input_manager,fp.process.node.input.manager,model_fusion_plating_process_node_input,group_fusion_plating_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
26 access_fp_bath_log_line_operator fp.bath.log.line.operator model_fusion_plating_bath_log_line group_fusion_plating_operator 1 1 1 0
27 access_fp_bath_log_line_supervisor fp.bath.log.line.supervisor model_fusion_plating_bath_log_line group_fusion_plating_supervisor 1 1 1 0
28 access_fp_bath_log_line_manager fp.bath.log.line.manager model_fusion_plating_bath_log_line group_fusion_plating_manager 1 1 1 1
29 access_fp_process_node_operator fp.process.node.operator model_fusion_plating_process_node group_fusion_plating_operator 1 0 0 0
30 access_fp_process_node_supervisor fp.process.node.supervisor model_fusion_plating_process_node group_fusion_plating_supervisor 1 1 1 0
31 access_fp_process_node_manager fp.process.node.manager model_fusion_plating_process_node group_fusion_plating_manager 1 1 1 1
32 access_fp_process_node_input_operator fp.process.node.input.operator model_fusion_plating_process_node_input group_fusion_plating_operator 1 0 0 0
33 access_fp_process_node_input_supervisor fp.process.node.input.supervisor model_fusion_plating_process_node_input group_fusion_plating_supervisor 1 1 1 0
34 access_fp_process_node_input_manager fp.process.node.input.manager model_fusion_plating_process_node_input group_fusion_plating_manager 1 1 1 1