| 
 | 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