Skip to content

Commit 72d7354

Browse files
Yasaiekos94ok-3D
authored andcommitted
[MIG] mrp
1 parent d253e32 commit 72d7354

File tree

4 files changed

+232
-1
lines changed

4 files changed

+232
-1
lines changed
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---Models in module 'mrp'---
2+
obsolete model mrp.subproduct (renamed to mrp.bom.byproduct)
3+
new model mrp.bom.byproduct (renamed from mrp.subproduct)
4+
# DONE: pre-migration: renamed models and tables
5+
6+
new model mrp.abstract.workorder [abstract]
7+
new model mrp.abstract.workorder.line [abstract]
8+
new model mrp.workorder.line
9+
# NOTHING TO DO: new models
10+
11+
---Fields in module 'mrp'---
12+
mrp / mrp.bom / byproduct_ids (one2many) : NEW relation: mrp.bom.byproduct
13+
mrp / mrp.bom / consumption (selection) : NEW selection_keys: ['flexible', 'strict'], hasdefault
14+
# NOTHING TO DO: has default value
15+
16+
mrp / mrp.bom.byproduct / company_id (many2one) : NEW relation: res.company, isrelated: related, stored
17+
mrp / mrp.bom.byproduct / routing_id (many2one) : NEW relation: mrp.routing, isrelated: related, stored
18+
mrp / mrp.bom.line / company_id (many2one) : NEW relation: res.company, isrelated: related, stored
19+
# NOTHING TO DO: new features with related relation
20+
21+
mrp / mrp.bom.line / attribute_value_ids (many2many): DEL relation: product.attribute.value
22+
mrp / mrp.bom.line / bom_product_template_attribute_value_ids (many2many): NEW relation: product.template.attribute.value
23+
# DONE: pre-migration: field and relation table renamed
24+
25+
mrp / mrp.document / key (char) : module is now 'website' ('mrp')
26+
mrp / mrp.document / res_id (integer) : relation is now 'res_model' ('False') [nothing to do]
27+
mrp / mrp.document / res_id (integer) : type is now 'many2one_reference' ('integer')
28+
mrp / mrp.document / website_id (many2one) : module is now 'website' ('mrp')
29+
mrp / mrp.document / website_url (char) : module is now 'website' ('mrp')
30+
# NOTHING TO DO
31+
32+
mrp / mrp.production / availability (selection) : DEL selection_keys: ['assigned', 'none', 'partially_available', 'waiting']
33+
mrp / mrp.production / reservation_state (selection) : NEW selection_keys: ['assigned', 'confirmed', 'waiting'], isfunction: function, stored
34+
mrp / mrp.production / propagate (boolean) : DEL
35+
mrp / mrp.production / propagate_cancel (boolean) : NEW
36+
# DONE: pre-migration (renamed)
37+
38+
mrp / mrp.production / date_deadline (datetime) : NEW
39+
mrp / mrp.production / date_start_wo (datetime) : NEW
40+
mrp / mrp.production / orderpoint_id (many2one) : NEW relation: stock.warehouse.orderpoint
41+
mrp / mrp.production / propagate_date (boolean) : NEW
42+
mrp / mrp.production / propagate_date_minimum_delta (integer): NEW
43+
mrp / mrp.production / state (selection) : now a function
44+
mrp / mrp.production / state (selection) : selection_keys is now '['cancel', 'confirmed', 'done', 'draft', 'planned', 'progress', 'to_close']' ('['cancel', 'confirmed', 'done', 'planned', 'progress']')
45+
mrp / mrp.routing / location_id (many2one) : DEL relation: stock.location
46+
mrp / mrp.routing.workcenter / worksheet_google_slide (char) : NEW
47+
mrp / mrp.routing.workcenter / worksheet_type (selection) : NEW selection_keys: ['google_slide', 'pdf'], hasdefault
48+
mrp / mrp.workcenter / alternative_workcenter_ids (many2many): NEW relation: mrp.workcenter
49+
# NOTHING TO DO: new features
50+
51+
mrp / mrp.unbuild / company_id (many2one) : NEW relation: res.company, required, req_default: function, hasdefault
52+
# DONE: post-migration: filled the field when empty
53+
54+
mrp / mrp.workcenter.productivity / company_id (many2one) : NEW relation: res.company, required, req_default: function, hasdefault
55+
# NOTHING TO DO: has proper default function
56+
57+
mrp / mrp.workorder / final_lot_id (many2one) : DEL relation: stock.production.lot
58+
mrp / mrp.workorder / finished_lot_id (many2one) : NEW relation: stock.production.lot
59+
# DONE: pre-migration (renamed)
60+
61+
mrp / mrp.workorder / consumption (selection) : NEW required, selection_keys: ['flexible', 'strict']
62+
mrp / mrp.workorder / active_move_line_ids (one2many): DEL relation: stock.move.line
63+
mrp / mrp.workorder / activity_ids (one2many) : NEW relation: mail.activity
64+
mrp / mrp.workorder / date_planned_finished (datetime): now a function
65+
mrp / mrp.workorder / date_planned_start (datetime) : now a function
66+
mrp / mrp.workorder / finished_workorder_line_ids (one2many): NEW relation: mrp.workorder.line
67+
mrp / mrp.workorder / leave_id (many2one) : NEW relation: resource.calendar.leaves
68+
mrp / mrp.workorder / move_finished_ids (one2many) : NEW relation: stock.move
69+
mrp / mrp.workorder / raw_workorder_line_ids (one2many): NEW relation: mrp.workorder.line
70+
# NOTHING TO DO: new features
71+
72+
mrp / mrp.workorder / product_uom_id (many2one) : is now stored
73+
mrp / mrp.workorder / product_uom_id (many2one) : not related anymore
74+
mrp / mrp.workorder / product_uom_id (many2one) : now required
75+
# DONE: post-migration: filled related values
76+
77+
mrp / mrp.workorder.line / finished_workorder_id (many2one): NEW relation: mrp.workorder
78+
mrp / mrp.workorder.line / lot_id (many2one) : NEW relation: stock.production.lot
79+
mrp / mrp.workorder.line / move_id (many2one) : NEW relation: stock.move
80+
mrp / mrp.workorder.line / product_id (many2one) : NEW relation: product.product, required
81+
mrp / mrp.workorder.line / product_uom_id (many2one) : NEW relation: uom.uom
82+
mrp / mrp.workorder.line / qty_done (float) : NEW
83+
mrp / mrp.workorder.line / qty_reserved (float) : NEW
84+
mrp / mrp.workorder.line / qty_to_consume (float) : NEW
85+
mrp / mrp.workorder.line / raw_workorder_id (many2one) : NEW relation: mrp.workorder
86+
# NOTHING TO DO: new model
87+
88+
mrp / stock.move / active_move_line_ids (one2many): DEL relation: stock.move.line
89+
mrp / stock.move / byproduct_id (many2one) : NEW relation: mrp.bom.byproduct
90+
mrp / stock.move.line / done_wo (boolean) : DEL
91+
# NOTHING TO DO: new feature
92+
93+
mrp / stock.move.line / lot_produced_id (many2one) : DEL relation: stock.production.lot
94+
mrp / stock.move.line / lot_produced_ids (many2many) : NEW relation: stock.production.lot
95+
# DONE: post-migration: transformed the many2one to many2many
96+
97+
mrp / stock.picking.type / use_create_components_lots (boolean): NEW hasdefault
98+
mrp / stock.production.lot / use_next_on_work_order_id (many2one): DEL relation: mrp.workorder
99+
mrp / stock.warehouse / manufacture_mto_pull_id (many2one): NEW relation: stock.rule
100+
# NOTHING TO DO: new feature
101+
102+
mrp_byproduct / mrp.bom / sub_products (one2many) : DEL relation: mrp.subproduct
103+
mrp_byproduct / stock.move / subproduct_id (many2one) : DEL relation: mrp.subproduct
104+
# NOTHING TO DO
105+
106+
---XML records in module 'mrp'---
107+
NEW ir.actions.report: mrp.label_manufacture_template
108+
# NOTHING TO DO: new xml
109+
110+
NEW ir.model.access: mrp.access_mrp_bom_byproduct_manager
111+
NEW ir.model.access: mrp.access_mrp_bom_byproduct_user
112+
DEL ir.model.access: mrp_byproduct.access_mrp_subproduct_manager
113+
DEL ir.model.access: mrp_byproduct.access_mrp_subproduct_user
114+
# DONE: pre-migration (renamed)
115+
116+
NEW ir.model.access: mrp.access_mrp_workorder_line_mrp_manager
117+
NEW ir.model.access: mrp.access_mrp_workorder_line_mrp_user
118+
DEL ir.model.access: mrp.access_product_price_history_mrp_manager
119+
DEL ir.model.access: mrp_byproduct.access_mrp_subproduct_all
120+
# NOTHING TO DO: noupdate=0
121+
122+
NEW ir.module.category: base.module_category_manufacturing_manufacturing (noupdate)
123+
NEW ir.rule: mrp.mrp_bom_byproduct_rule (noupdate)
124+
NEW ir.rule: mrp.mrp_bom_line_rule (noupdate)
125+
NEW ir.rule: mrp.mrp_unbuild_rule (noupdate)
126+
NEW ir.rule: mrp.mrp_workcenter_productivity (noupdate)
127+
NEW ir.rule: mrp.mrp_workorder_rule (noupdate)
128+
# NOTHING TO DO: new xml
129+
130+
DEL ir.sequence: mrp.sequence_mrp_unbuild (noupdate)
131+
# DONE: post-migration (removed)
132+
133+
DEL ir.ui.menu: mrp.menu_mrp_workcenter_productivity_loss
134+
DEL ir.ui.menu: mrp.menu_view_resource_calendar_search_mrp
135+
NEW ir.ui.view: mrp.label_production_view
136+
NEW ir.ui.view: mrp.mrp_bom_byproduct_form_view
137+
NEW ir.ui.view: mrp.mrp_product_produce_line_form
138+
NEW ir.ui.view: mrp.mrp_product_produce_line_kanban
139+
NEW ir.ui.view: mrp.view_stock_move_raw_tree
140+
DEL ir.ui.view: mrp_byproduct.mrp_subproduct_view
141+
NEW res.groups: mrp.group_mrp_byproducts
142+
# NOTHING TO DO: noupdate=0
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Copyright 2020 Payam Yasaie <https://www.tashilgostar.com>
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3+
from openupgradelib import openupgrade
4+
5+
_unlink_by_xmlid = [
6+
'mrp.sequence_mrp_unbuild',
7+
]
8+
9+
10+
def convert_many2one_field(env):
11+
openupgrade.m2o_to_x2m(
12+
env.cr,
13+
env['stock.move.line'], 'stock_move_line',
14+
'lot_produced_ids', openupgrade.get_legacy_name('lot_produced_id')
15+
)
16+
17+
18+
def fill_mrp_unbuild_company_id(cr):
19+
openupgrade.logged_query(
20+
cr, """
21+
UPDATE mrp_unbuild mu
22+
SET company_id = ru.company_id
23+
FROM res_users ru
24+
WHERE ru.id = mu.create_uid AND mu.company_id IS NULL
25+
"""
26+
)
27+
28+
29+
def fill_mrp_workorder_product_uom_id(cr):
30+
openupgrade.logged_query(
31+
cr, """
32+
UPDATE mrp_workorder mw
33+
SET product_uom_id = mp.product_uom_id
34+
FROM mrp_production mp
35+
WHERE mw.production_id = mp.id AND mw.product_uom_id IS NULL
36+
"""
37+
)
38+
39+
40+
@openupgrade.migrate()
41+
def migrate(env, version):
42+
convert_many2one_field(env)
43+
fill_mrp_unbuild_company_id(env.cr)
44+
fill_mrp_workorder_product_uom_id(env.cr)
45+
openupgrade.delete_records_safely_by_xml_id(env, _unlink_by_xmlid)
46+
openupgrade.load_data(env.cr, 'mrp', 'migrations/13.0.2.0/noupdate_changes.xml')
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Copyright 2020 Payam Yasaie <https://www.tashilgostar.com>
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3+
from openupgradelib import openupgrade
4+
5+
_model_renames = [
6+
('mrp.subproduct', 'mrp.bom.byproduct'),
7+
]
8+
9+
_table_renames = [
10+
('mrp_subproduct', 'mrp_bom_byproduct'),
11+
('mrp_bom_line_product_attribute_value_rel', 'mrp_bom_line_product_template_attribute_value_rel'),
12+
]
13+
14+
_field_renames = [
15+
('mrp.workorder', 'mrp_workorder', 'final_lot_id', 'finished_lot_id'),
16+
('mrp.bom.line', 'mrp_bom_line', 'attribute_value_ids', 'bom_product_template_attribute_value_ids'),
17+
('mrp.production', 'mrp_production', 'availability', 'reservation_state'),
18+
('mrp.production', 'mrp_production', 'propagate', 'propagate_cancel'),
19+
]
20+
21+
_column_renames = {
22+
'stock_move_line': [
23+
('lot_produced_id', None),
24+
],
25+
'mrp_bom_line_product_template_attribute_value_rel': [
26+
('product_attribute_value_id', 'product_template_attribute_value_id'),
27+
],
28+
}
29+
30+
_xmlid_renames = [
31+
# ir.model.access
32+
('mrp_byproduct.access_mrp_subproduct_manager', 'mrp.access_mrp_bom_byproduct_manager'),
33+
('mrp_byproduct.access_mrp_subproduct_user', 'mrp.access_mrp_bom_byproduct_user'),
34+
]
35+
36+
37+
@openupgrade.migrate()
38+
def migrate(env, version):
39+
openupgrade.rename_models(env.cr, _model_renames)
40+
openupgrade.rename_tables(env.cr, _table_renames)
41+
openupgrade.rename_fields(env, _field_renames)
42+
openupgrade.rename_columns(env.cr, _column_renames)
43+
openupgrade.rename_xmlids(env.cr, _xmlid_renames)

odoo/openupgrade/doc/source/modules120-130.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ missing in the new release are marked with |del|.
433433
+----------------------------------------------+-------------------------------------------------+
434434
|membership | |
435435
+----------------------------------------------+-------------------------------------------------+
436-
|mrp | |
436+
|mrp | Done |
437437
+----------------------------------------------+-------------------------------------------------+
438438
| |new| mrp_account | |
439439
+----------------------------------------------+-------------------------------------------------+

0 commit comments

Comments
 (0)