changes
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2026 Nexa Systems Inc.
|
||||
# License OPL-1
|
||||
#
|
||||
# Phase 1 (Sub 11) — relocate ir.model.data XML IDs from
|
||||
# fusion_plating_bridge_mrp to fusion_plating_jobs for the four
|
||||
# models that moved: fp.work.role, fp.operator.proficiency,
|
||||
# fp.qc.checklist.template (+line), fp.job.consumption.
|
||||
#
|
||||
# Pre-migration so Odoo's normal load pass sees the records under the
|
||||
# new module owner, not as orphans pending deletion.
|
||||
#
|
||||
# Idempotent — `ON CONFLICT DO NOTHING` skips rows already migrated.
|
||||
|
||||
import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def migrate(cr, version):
|
||||
if not version:
|
||||
return # Fresh install — nothing to migrate
|
||||
|
||||
moves = [
|
||||
# (xmlid pattern, list of model identifiers to move)
|
||||
('model_fp_job_consumption',),
|
||||
# ACL records (csv:id values get prefixed with the owning module)
|
||||
('access_fp_job_consumption_%',),
|
||||
]
|
||||
for (pat,) in moves:
|
||||
cr.execute(
|
||||
"""
|
||||
UPDATE ir_model_data
|
||||
SET module = 'fusion_plating_jobs'
|
||||
WHERE module = 'fusion_plating_bridge_mrp'
|
||||
AND name LIKE %s
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM ir_model_data d2
|
||||
WHERE d2.module = 'fusion_plating_jobs'
|
||||
AND d2.name = ir_model_data.name
|
||||
)
|
||||
""",
|
||||
(pat,),
|
||||
)
|
||||
if cr.rowcount:
|
||||
_logger.info(
|
||||
"Sub 11: re-keyed %d ir.model.data rows matching %s -> fusion_plating_jobs",
|
||||
cr.rowcount, pat,
|
||||
)
|
||||
|
||||
# Views, actions, menus that the old module created
|
||||
view_patterns = [
|
||||
'view_fp_job_consumption_%',
|
||||
'action_fp_job_consumption%',
|
||||
'menu_fp_job_consumption%',
|
||||
]
|
||||
for pat in view_patterns:
|
||||
cr.execute(
|
||||
"""
|
||||
UPDATE ir_model_data
|
||||
SET module = 'fusion_plating_jobs'
|
||||
WHERE module = 'fusion_plating_bridge_mrp'
|
||||
AND name LIKE %s
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM ir_model_data d2
|
||||
WHERE d2.module = 'fusion_plating_jobs'
|
||||
AND d2.name = ir_model_data.name
|
||||
)
|
||||
""",
|
||||
(pat,),
|
||||
)
|
||||
if cr.rowcount:
|
||||
_logger.info(
|
||||
"Sub 11: re-keyed %d row(s) for %s -> fusion_plating_jobs",
|
||||
cr.rowcount, pat,
|
||||
)
|
||||
|
||||
# Phase 1 swap: fp.job.consumption columns. Drop the legacy
|
||||
# MRP-pointing columns (production_id, workorder_id) from the
|
||||
# already-existing table — there are zero rows referencing MRP, and
|
||||
# the new model declares job_id / step_id instead.
|
||||
cr.execute(
|
||||
"""
|
||||
ALTER TABLE fp_job_consumption
|
||||
DROP COLUMN IF EXISTS production_id,
|
||||
DROP COLUMN IF EXISTS workorder_id
|
||||
"""
|
||||
)
|
||||
_logger.info("Sub 11: dropped MRP columns on fp_job_consumption")
|
||||
Reference in New Issue
Block a user