Skip to content

Commit c936a8b

Browse files
committed
Find related fields
1 parent 0c0b31f commit c936a8b

File tree

2 files changed

+170
-1
lines changed

2 files changed

+170
-1
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@
3333
!expression_performance/**/*.py
3434
!expression_performance/**/*.csv
3535

36-
!read_group_replacement.py
36+
!read_group_replacement.py
37+
!find_related.py

find_related.py

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
2+
3+
modules_done = {
4+
'base',
5+
'base_address_extended',
6+
'base_automation',
7+
'base_geolocalize',
8+
'base_iban',
9+
'base_import',
10+
'base_import_module',
11+
'base_install_request',
12+
'base_setup',
13+
'base_sparse_field',
14+
'base_vat',
15+
'contacts',
16+
'product',
17+
'mail',
18+
}
19+
20+
# delivery,delivery_stock_picking_batch,mrp,mrp_account,mrp_landed_costs,mrp_product_expiry,mrp_repair,mrp_subcontracting,mrp_subcontracting_account,mrp_subcontracting_dropshipping,mrp_subcontracting_landed_costs,mrp_subcontracting_purchase,mrp_subcontracting_repair,mrp_subonctracting_landed_costs,project_mrp,project_purchase,purchase,purchase_mrp,purchase_price_diff,purchase_product_matrix,purchase_requisition,purchase_requisition_sale,purchase_requisition_stock,purchase_stock,sale_mrp,sale_mrp_margin,sale_project_stock,sale_purchase,sale_purchase_stock,sale_stock,sale_stock_margin,stock,stock_account,stock_delivery,stock_dropshipping,stock_landed_costs,stock_picking_batch,stock_sms,website_sale_stock,website_sale_stock_product_configurator,website_sale_stock_wishlist,account_avatax_stock,account_invoice_extract_purchase,approvals_purchase,approvals_purchase_stock,helpdesk_stock,helpdesk_stock_account,industry_fsm_stock,mrp_accountant,mrp_account_enterprise,mrp_maintenance,mrp_mps,mrp_plm,mrp_subcontracting_account_enterprise,mrp_subcontracting_enterprise,mrp_subcontracting_quality,mrp_subcontracting_studio,mrp_workorder,mrp_workorder_expiry,mrp_workorder_hr,mrp_workorder_hr_account,mrp_workorder_iot,mrp_workorder_plm,purchase_enterprise,purchase_intrastat,purchase_mrp_workorder_quality,purchase_stock_enterprise,quality,quality_control,quality_control_iot,quality_control_picking_batch,quality_control_worksheet,quality_iot,quality_mrp,quality_mrp_workorder,quality_mrp_workorder_iot,quality_mrp_workorder_worksheet,sale_stock_renting,sale_subscription_stock,stock_accountant,stock_account_enterprise,stock_barcode,stock_barcode_mrp,stock_barcode_mrp_subcontracting,stock_barcode_picking_batch,stock_barcode_product_expiry,stock_barcode_quality_control,stock_barcode_quality_control_picking_batch,stock_barcode_quality_mrp,stock_enterprise,stock_intrastat,website_sale_stock_renting
21+
target_modules = [
22+
'delivery',
23+
'delivery_stock_picking_batch',
24+
'mrp',
25+
'mrp_account',
26+
'mrp_landed_costs',
27+
'mrp_product_expiry',
28+
'mrp_repair',
29+
'mrp_subcontracting',
30+
'mrp_subcontracting_account',
31+
'mrp_subcontracting_dropshipping',
32+
'mrp_subcontracting_landed_costs',
33+
'mrp_subcontracting_purchase',
34+
'mrp_subcontracting_repair',
35+
'mrp_subonctracting_landed_costs',
36+
'project_mrp',
37+
'project_purchase',
38+
'purchase',
39+
'purchase_mrp',
40+
'purchase_price_diff',
41+
'purchase_product_matrix',
42+
'purchase_requisition',
43+
'purchase_requisition_sale',
44+
'purchase_requisition_stock',
45+
'purchase_stock',
46+
'sale_mrp',
47+
'sale_mrp_margin',
48+
'sale_project_stock',
49+
'sale_purchase',
50+
'sale_purchase_stock',
51+
'sale_stock',
52+
'sale_stock_margin',
53+
'stock',
54+
'stock_account',
55+
'stock_delivery',
56+
'stock_dropshipping',
57+
'stock_landed_costs',
58+
'stock_picking_batch',
59+
'stock_sms',
60+
'account_avatax_stock',
61+
'account_invoice_extract_purchase',
62+
'approvals_purchase',
63+
'approvals_purchase_stock',
64+
'helpdesk_stock',
65+
'helpdesk_stock_account',
66+
'industry_fsm_stock',
67+
'mrp_accountant',
68+
'mrp_account_enterprise',
69+
'mrp_maintenance',
70+
'mrp_mps',
71+
'mrp_plm',
72+
'mrp_subcontracting_account_enterprise',
73+
'mrp_subcontracting_enterprise',
74+
'mrp_subcontracting_quality',
75+
'mrp_subcontracting_studio',
76+
'mrp_workorder',
77+
'mrp_workorder_expiry',
78+
'mrp_workorder_hr',
79+
'mrp_workorder_hr_account',
80+
'mrp_workorder_iot',
81+
'mrp_workorder_plm',
82+
'purchase_enterprise',
83+
'purchase_intrastat',
84+
'purchase_mrp_workorder_quality',
85+
'purchase_stock_enterprise',
86+
'quality',
87+
'quality_control',
88+
'quality_control_iot',
89+
'quality_control_picking_batch',
90+
'quality_control_worksheet',
91+
'quality_iot',
92+
'quality_mrp',
93+
'quality_mrp_workorder',
94+
'quality_mrp_workorder_iot',
95+
'quality_mrp_workorder_worksheet',
96+
'sale_stock_renting',
97+
'sale_subscription_stock',
98+
'stock_accountant',
99+
'stock_account_enterprise',
100+
'stock_barcode',
101+
'stock_barcode_mrp',
102+
'stock_barcode_mrp_subcontracting',
103+
'stock_barcode_picking_batch',
104+
'stock_barcode_product_expiry',
105+
'stock_barcode_quality_control',
106+
'stock_barcode_quality_control_picking_batch',
107+
'stock_barcode_quality_mrp',
108+
'stock_enterprise',
109+
'stock_intrastat',
110+
]
111+
112+
print(','.join(target_modules))
113+
114+
115+
keep_it = {
116+
'mail.activity.res_model',
117+
'res.company.name',
118+
'res.company.email',
119+
'res.company.phone',
120+
'res.company.mobile',
121+
'mail.template.model', # Not sure ?
122+
'discuss.channel.rtc.session.channel_id', # Because of rtc_session_ids
123+
'stock.move.scrapped', # Because it is used in a lot of query/code and the code seems minimal
124+
'stock.move.line.state', # Use in multi index
125+
'stock.picking.group_id', # Because travers a one2many
126+
'stock.picking.company_id', # Because index + low cost
127+
'stock.picking.sale_id', # Because index
128+
'stock.quant.company_id', # Because multi company
129+
'mrp.bom.line.product_tmpl_id', # Add for performance
130+
'mrp.bom.line.company_id', # index + low cost
131+
'mrp.bom.byproduct.company_id ', # index + low cost
132+
'mrp.workcenter.name', # ressource stuffs
133+
'mrp.workcenter.time_efficiency',
134+
'mrp.workcenter.active',
135+
'purchase.order.line.company_id', # Multi company rules
136+
'purchase.requisition.line.company_id', # Multi company rules
137+
'delivery.carrier.company_id', # Multi company rules
138+
}
139+
140+
remove_not_sure = {
141+
'product.template.attribute.value.product_tmpl_id', # Not sure ? https://github.com/odoo/odoo/pull/35866
142+
'product.template.attribute.value.attribute_id', # Not sure ? https://github.com/odoo/odoo/pull/35866
143+
'stock.move.order_finished_lot_id', # use to group and index to unlink
144+
'stock.rule.route_sequence', # cost low and use in order ?
145+
}
146+
147+
# to get all modules
148+
# ls -w 1 -d * | sed 's/$//'
149+
150+
151+
for model in env.values():
152+
if model._transient:
153+
continue
154+
for field in model._fields.values():
155+
if not field.store or not field.related:
156+
continue
157+
if field.type == 'binary':
158+
continue
159+
160+
if field._module not in target_modules:
161+
continue
162+
163+
if str(field) in keep_it:
164+
continue
165+
166+
print(f"{field} is store related='{field.related}' added in {field._module}")
167+
168+

0 commit comments

Comments
 (0)