[IMP] *: optimize multi-company rule
When we use the `|` (or) version of this rule the ORM generates two
sub-queries when checking the company. This causes sub-optimal and in
some cases really bad planning for the queries and thus PG takes hours
to complete them.
Example (formatted):
```sql
SELECT "mrp_routing_workcenter".id
FROM "mrp_routing_workcenter"
LEFT JOIN "mrp_bom" AS "mrp_routing_workcenter__bom_id"
ON "mrp_routing_workcenter"."bom_id" = "mrp_routing_workcenter__bom_id"."id"
WHERE "mrp_routing_workcenter"."workcenter_id" in (1)
AND ( ("mrp_routing_workcenter"."bom_id" in (
SELECT "mrp_bom".id
FROM "mrp_bom"
WHERE ("mrp_bom"."company_id" in (1))
)
)
OR ("mrp_routing_workcenter"."bom_id" in (
SELECT "mrp_bom".id
FROM "mrp_bom"
WHERE "mrp_bom"."company_id" IS NULL
)
)
)
ORDER BY "mrp_routing_workcenter__bom_id"."sequence",
"mrp_routing_workcenter__bom_id"."id",
"mrp_routing_workcenter"."sequence",
"mrp_routing_workcenter"."id"
```
If we use the single term version the generated query has only one
sub-query:
```sql
SELECT "mrp_routing_workcenter".id
FROM "mrp_routing_workcenter"
LEFT JOIN "mrp_bom" AS "mrp_routing_workcenter__bom_id"
ON "mrp_routing_workcenter"."bom_id" = "mrp_routing_workcenter__bom_id"."id"
WHERE "mrp_routing_workcenter"."workcenter_id" in (1)
AND ( ("mrp_routing_workcenter"."bom_id" in (
SELECT "mrp_bom".id
FROM "mrp_bom"
WHERE (("mrp_bom"."company_id" in (1))
OR ("mrp_bom"."company_id" IS NULL))
)
)
)
ORDER BY "mrp_routing_workcenter__bom_id"."sequence",
"mrp_routing_workcenter__bom_id"."id",
"mrp_routing_workcenter"."sequence",
"mrp_routing_workcenter"."id"
```
In this version PG is able to produce a better query plan resulting in
better execution times.
Also, the `company_id` field is required on some models, so the "= False" comparison is useless.
closes odoo/odoo#159123
X-original-commit: 1b5c41f36801fb886ec591f29dba42787d698526
Related: odoo/enterprise#59378
Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
Co-authored-by: Christophe Simonis <chs@odoo.com>
This commit is contained in:
committed by
Christophe Simonis
co-authored by
Christophe Simonis
parent
adc04e2bb2
commit
c18b9f44be
@@ -185,7 +185,7 @@
|
||||
<record model="ir.rule" id="account_bank_statement_comp_rule">
|
||||
<field name="name">Account bank statement company rule</field>
|
||||
<field name="model_id" ref="model_account_bank_statement"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="account_bank_statement_line_comp_rule">
|
||||
@@ -215,7 +215,7 @@
|
||||
<record model="ir.rule" id="account_payment_term_comp_rule">
|
||||
<field name="name">Account payment term company rule</field>
|
||||
<field name="model_id" ref="model_account_payment_term"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<!-- Billing record rules for account.move -->
|
||||
|
||||
@@ -6,28 +6,28 @@
|
||||
<field name="name">Analytic multi company rule</field>
|
||||
<field name="model_id" ref="model_account_analytic_account"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="analytic_line_comp_rule" model="ir.rule">
|
||||
<field name="name">Analytic line multi company rule</field>
|
||||
<field name="model_id" ref="model_account_analytic_line"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record id="analytic_applicability_comp_rule" model="ir.rule">
|
||||
<field name="name">Analytic applicability multi company rule</field>
|
||||
<field name="model_id" ref="model_account_analytic_applicability"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="analytic_distribution_model_comp_rule" model="ir.rule">
|
||||
<field name="name">Analytic distribution model multi company rule</field>
|
||||
<field name="model_id" ref="model_account_analytic_distribution_model"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</data>
|
||||
<data noupdate="0">
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<record id="crm_lead_company_rule" model="ir.rule">
|
||||
<field name="name">CRM Lead Multi-Company</field>
|
||||
<field name="model_id" ref="model_crm_lead"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_rule_all_lead" model="ir.rule">
|
||||
@@ -55,7 +55,7 @@
|
||||
<record id="crm_activity_report_rule_multi_company" model="ir.rule">
|
||||
<field name="name">CRM Lead Multi-Company</field>
|
||||
<field name="model_id" ref="model_crm_activity_report"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_plan_rule_group_sale_manager_lead" model="ir.rule">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<record model="ir.rule" id="delivery_carrier_comp_rule">
|
||||
<field name="name">Delivery Carrier multi-company</field>
|
||||
<field name="model_id" ref="model_delivery_carrier"/>
|
||||
<field name="domain_force">['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -35,17 +35,17 @@
|
||||
<record model="ir.rule" id="event_event_company_rule">
|
||||
<field name="name">Event: multi-company</field>
|
||||
<field name="model_id" ref="model_event_event"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record model="ir.rule" id="event_registration_company_rule">
|
||||
<field name="name">Event/Registration: multi-company</field>
|
||||
<field name="model_id" ref="model_event_registration"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="ir_rule_event_event_ticket_company" model="ir.rule">
|
||||
<field name="name">Event/Ticket: multi-company</field>
|
||||
<field name="model_id" ref="model_event_event_ticket"/>
|
||||
<field name="domain_force">['|', ('event_id.company_id', '=', False), ('event_id.company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('event_id.company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<field name="name">Event CRM: Multi Company</field>
|
||||
<field name="model_id" ref="model_event_lead_rule"/>
|
||||
<field name="groups" eval="[(4, ref('base.group_multi_company'))]"/>
|
||||
<field name="domain_force">['|', ('company_id','=',False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<record id="event_sale_report_comp_rule" model="ir.rule">
|
||||
<field name="name">Event Sales Report multi-company</field>
|
||||
<field name="model_id" ref="model_event_sale_report"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -83,29 +83,29 @@
|
||||
<record id="ir_rule_fleet_vehicle" model="ir.rule">
|
||||
<field name="name">Fleet vehicle: Multi Company</field>
|
||||
<field name="model_id" ref="model_fleet_vehicle"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="ir_rule_fleet_vehicle_log_contract" model="ir.rule">
|
||||
<field name="name">Fleet vehicle log contract: Multi Company</field>
|
||||
<field name="model_id" ref="model_fleet_vehicle_log_contract"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="ir_rule_fleet_report" model="ir.rule">
|
||||
<field name="name">Costs Analysis: Multi Company</field>
|
||||
<field name="model_id" ref="model_fleet_vehicle_cost_report"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="ir_rule_fleet_odometer" model="ir.rule">
|
||||
<field name="name">Fleet odometer: Multi Company</field>
|
||||
<field name="model_id" ref="model_fleet_vehicle_odometer"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|', ('vehicle_id.company_id', '=', False), ('vehicle_id.company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('vehicle_id.company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="ir_rule_fleet_log_services" model="ir.rule">
|
||||
<field name="name">Fleet log services: Multi Company</field>
|
||||
<field name="model_id" ref="model_fleet_vehicle_log_services"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -28,25 +28,25 @@
|
||||
<record id="hr_employee_comp_rule" model="ir.rule">
|
||||
<field name="name">Employee multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_employee"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_dept_comp_rule" model="ir.rule">
|
||||
<field name="name">Department multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_department"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_employee_public_comp_rule" model="ir.rule">
|
||||
<field name="name">Employee multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_employee_public"/>
|
||||
<field name="domain_force">['|',('company_id', '=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_job_comp_rule" model="ir.rule">
|
||||
<field name="name">Job multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_job"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_res_partner_bank_internal_users" model="ir.rule">
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<record id="ir_rule_hr_contract_multi_company" model="ir.rule">
|
||||
<field name="name">HR Contract: Multi Company</field>
|
||||
<field name="model_id" ref="model_hr_contract"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_hr_payroll_structure_type_multi_company" model="ir.rule">
|
||||
|
||||
@@ -66,13 +66,13 @@
|
||||
<field name="name">Expense multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_expense"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<record id="hr_expense_report_comp_rule" model="ir.rule">
|
||||
<field name="name">Expense Report multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_expense_sheet"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_expense_team_approver_account_move_rule" model="ir.rule">
|
||||
|
||||
@@ -145,9 +145,7 @@
|
||||
'|',
|
||||
('employee_id', '=', False),
|
||||
('employee_id.company_id', 'in', company_ids),
|
||||
'|',
|
||||
('holiday_status_id.company_id', '=', False),
|
||||
('holiday_status_id.company_id', 'in', company_ids)
|
||||
('holiday_status_id.company_id', 'in', company_ids + [False])
|
||||
]</field>
|
||||
</record>
|
||||
|
||||
@@ -247,26 +245,26 @@
|
||||
<record id="hr_holidays_status_rule_multi_company" model="ir.rule">
|
||||
<field name="name">Time Off multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_leave_type"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_leave_accrual_plan_rule_multi_company" model="ir.rule">
|
||||
<field name="name">Accrual plan multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_leave_accrual_plan"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_leave_mandatory_day_rule_multi_company" model="ir.rule">
|
||||
<field name="name">Mandatory Day: multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_leave_mandatory_day"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_leave_report_calendar_rule_multi_company" model="ir.rule">
|
||||
<field name="name">Time Off Report Calendar: multi company global rule</field>
|
||||
<field name="model_id" ref="model_hr_leave_report_calendar"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_leave_report_rule_group_user" model="ir.rule">
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<field name="name">Applicant multi company rule</field>
|
||||
<field name="model_id" ref="model_hr_applicant"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="group_hr_recruitment_interviewer" model="res.groups">
|
||||
|
||||
@@ -54,6 +54,6 @@
|
||||
<record id="hr_employee_skill_report_multicompany" model="ir.rule">
|
||||
<field name="name">Employee Skill Report: Multi-Company Rule</field>
|
||||
<field name="model_id" ref="model_hr_employee_skill_report"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<record id="hr_timesheet_attendance_report_restricted_company_rule" model="ir.rule">
|
||||
<field name="name">Restricted Timesheet attendance Record: multi-company</field>
|
||||
<field name="model_id" ref="model_hr_timesheet_attendance_report"/>
|
||||
<field name="domain_force"> ['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force"> [('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_timesheet_attendance_report_rule_user" model="ir.rule">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<record id="ir_rule_hr_work_entry_multi_company" model="ir.rule">
|
||||
<field name="name">HR Work Entry Contract: Multi Company</field>
|
||||
<field name="model_id" ref="model_hr_work_entry"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -4,25 +4,25 @@
|
||||
<record id="sale_loyalty_program_company_rule" model="ir.rule">
|
||||
<field name="name">Loyalty program multi company rule</field>
|
||||
<field name="model_id" ref="model_loyalty_program"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_loyalty_card_company_rule" model="ir.rule">
|
||||
<field name="name">Loyalty card multi company rule</field>
|
||||
<field name="model_id" ref="model_loyalty_card"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_loyalty_rule_company_rule" model="ir.rule">
|
||||
<field name="name">Loyalty rule multi company rule</field>
|
||||
<field name="model_id" ref="model_loyalty_rule"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_loyalty_reward_company_rule" model="ir.rule">
|
||||
<field name="name">Loyalty reward multi company rule</field>
|
||||
<field name="model_id" ref="model_loyalty_reward"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -68,31 +68,31 @@
|
||||
<record id="ir_rule_lunch_supplier_multi_company" model="ir.rule">
|
||||
<field name="name">Lunch supplier: Multi Company</field>
|
||||
<field name="model_id" ref="model_lunch_supplier"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_lunch_order_multi_company" model="ir.rule">
|
||||
<field name="name">Lunch order: Multi Company</field>
|
||||
<field name="model_id" ref="model_lunch_order"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_lunch_product_multi_company" model="ir.rule">
|
||||
<field name="name">Lunch product: Multi Company</field>
|
||||
<field name="model_id" ref="model_lunch_product"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_lunch_product_category_multi_company" model="ir.rule">
|
||||
<field name="name">Lunch product category: Multi Company</field>
|
||||
<field name="model_id" ref="model_lunch_product_category"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_lunch_location_multi_company" model="ir.rule">
|
||||
<field name="name">Lunch location: Multi Company</field>
|
||||
<field name="model_id" ref="model_lunch_location"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -43,25 +43,25 @@
|
||||
<record id="maintenance_request_comp_rule" model="ir.rule">
|
||||
<field name="name">Maintenance Request Multi-company rule</field>
|
||||
<field name="model_id" ref="model_maintenance_request"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="maintenance_equipment_comp_rule" model="ir.rule">
|
||||
<field name="name">Maintenance Equipment Multi-company rule</field>
|
||||
<field name="model_id" ref="model_maintenance_equipment"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="maintenance_team_comp_rule" model="ir.rule">
|
||||
<field name="name">Maintenance Team Multi-company rule</field>
|
||||
<field name="model_id" ref="model_maintenance_team"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="maintenance_equipment_category_comp_rule" model="ir.rule">
|
||||
<field name="name">Maintenance Equipment Category Multi-company rule</field>
|
||||
<field name="model_id" ref="model_maintenance_equipment_category"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<record model="ir.rule" id="mrp_workcenter_rule">
|
||||
<field name="name">mrp_workcenter multi-company</field>
|
||||
<field name="model_id" search="[('model','=','mrp.workcenter')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id', 'in', company_ids),('company_id','=',False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="mrp_workorder_rule">
|
||||
@@ -78,25 +78,25 @@
|
||||
<record model="ir.rule" id="mrp_bom_rule">
|
||||
<field name="name">mrp_bom multi-company</field>
|
||||
<field name="model_id" search="[('model','=','mrp.bom')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id', 'in', company_ids),('company_id','=',False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="mrp_bom_line_rule">
|
||||
<field name="name">mrp_bom_line multi-company</field>
|
||||
<field name="model_id" search="[('model','=','mrp.bom.line')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id', 'in', company_ids),('company_id','=',False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="mrp_bom_byproduct_rule">
|
||||
<field name="name">mrp_bom_byproduct multi-company</field>
|
||||
<field name="model_id" search="[('model','=','mrp.bom.byproduct')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id', 'in', company_ids),('company_id','=',False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="mrp_routing_workcenter_rule">
|
||||
<field name="name">mrp_routing_workcenter multi-company</field>
|
||||
<field name="model_id" search="[('model','=','mrp.routing.workcenter')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id', 'in', company_ids),('company_id','=',False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="mrp_workcenter_productivity">
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<record id="rule_pos_order_report_multi_company" model="ir.rule">
|
||||
<field name="name">Point Of Sale Order Analysis multi-company</field>
|
||||
<field name="model_id" ref="model_report_pos_order"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
<record id="rule_pos_payment_method_multi_company" model="ir.rule">
|
||||
<field name="name">PoS Payment Method</field>
|
||||
|
||||
@@ -52,13 +52,13 @@
|
||||
<record model="ir.rule" id="project_comp_rule">
|
||||
<field name="name">Project: multi-company</field>
|
||||
<field name="model_id" ref="model_project_project"/>
|
||||
<field name="domain_force">['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="project_project_stage_rule">
|
||||
<field name="name">Project Stage: multi-company</field>
|
||||
<field name="model_id" ref="model_project_project_stage"/>
|
||||
<field name="domain_force">['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="project_project_manager_rule">
|
||||
@@ -81,7 +81,7 @@
|
||||
<record model="ir.rule" id="task_comp_rule">
|
||||
<field name="name">Project/Task: multi-company</field>
|
||||
<field name="model_id" ref="model_project_task"/>
|
||||
<field name="domain_force">['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="task_visibility_rule">
|
||||
@@ -139,7 +139,7 @@
|
||||
<record model="ir.rule" id="report_project_task_user_report_comp_rule">
|
||||
<field name="name">Task Analysis multi-company</field>
|
||||
<field name="model_id" ref="model_report_project_task_user"/>
|
||||
<field name="domain_force">['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_project_personal_stage_my" model="ir.rule">
|
||||
|
||||
@@ -43,13 +43,13 @@
|
||||
<record model="ir.rule" id="purchase_order_comp_rule">
|
||||
<field name="name">Purchase Order multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_order"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="purchase_order_line_comp_rule">
|
||||
<field name="name">Purchase Order Line multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_order_line"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record id="portal_purchase_order_user_rule" model="ir.rule">
|
||||
@@ -84,13 +84,13 @@
|
||||
<record model="ir.rule" id="purchase_bill_union_comp_rule">
|
||||
<field name="name">Purchases & Bills Union multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_bill_union"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="purchase_order_report_comp_rule" model="ir.rule">
|
||||
<field name="name">Purchase Order Report multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_report"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
<record model="ir.rule" id="purchase_requisition_comp_rule">
|
||||
<field name="name">Purchase Requisition multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_requisition"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="purchase_requisition_line_comp_rule">
|
||||
<field name="name">Purchase requisition Line multi-company</field>
|
||||
<field name="model_id" ref="model_purchase_requisition_line"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -30,12 +30,12 @@
|
||||
<record id="resource_resource_multi_company" model="ir.rule">
|
||||
<field name="name">resource.resource multi-company</field>
|
||||
<field name="model_id" ref="model_resource_resource"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="resource_calendar_leaves_rule_multi_company">
|
||||
<field name="name">resource.calendar.leaves: multi-company rule</field>
|
||||
<field name="model_id" ref="model_resource_calendar_leaves"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
<record id="sale_order_line_comp_rule" model="ir.rule">
|
||||
<field name="name">Sales Order Line multi-company</field>
|
||||
<field name="model_id" ref="model_sale_order_line"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_report_comp_rule" model="ir.rule">
|
||||
<field name="name">Sales Order Analysis multi-company</field>
|
||||
<field name="model_id" ref="model_sale_report"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<!-- Portal Access Rules -->
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<record id="sale_order_template_rule_company" model="ir.rule">
|
||||
<field name="name">Quotation Template multi-company</field>
|
||||
<field name="model_id" ref="model_sale_order_template"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<record model="ir.rule" id="sale_team_comp_rule">
|
||||
<field name="name">Sales Team multi-company</field>
|
||||
<field name="model_id" ref="model_crm_team"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="base.default_user" model="res.users">
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
<record model="ir.rule" id="stock_location_comp_rule">
|
||||
<field name="name">Location multi-company</field>
|
||||
<field name="model_id" ref="model_stock_location"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_move_rule">
|
||||
@@ -135,13 +135,13 @@
|
||||
<record model="ir.rule" id="stock_move_line_rule">
|
||||
<field name="name">stock_move_line multi-company</field>
|
||||
<field name="model_id" search="[('model','=','stock.move.line')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_quant_rule">
|
||||
<field name="name">stock_quant multi-company</field>
|
||||
<field name="model_id" ref="model_stock_quant"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_warehouse_orderpoint_rule">
|
||||
@@ -153,19 +153,19 @@
|
||||
<record model="ir.rule" id="product_pulled_flow_comp_rule">
|
||||
<field name="name">product_pulled_flow multi-company</field>
|
||||
<field name="model_id" ref="model_stock_rule"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_location_route_comp_rule">
|
||||
<field name="name">stock_route multi-company</field>
|
||||
<field name="model_id" ref="model_stock_route"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_quant_package_comp_rule">
|
||||
<field name="name">stock_quant_package multi-company</field>
|
||||
<field name="model_id" ref="model_stock_quant_package"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_scrap_company_rule">
|
||||
@@ -177,13 +177,13 @@
|
||||
<record model="ir.rule" id="report_stock_quantity_flow_comp_rule">
|
||||
<field name="name">report_stock_quantity_flow multi-company</field>
|
||||
<field name="model_id" ref="model_report_stock_quantity"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="stock_storage_category_rule">
|
||||
<field name="name">stock_storage_category multi-company</field>
|
||||
<field name="model_id" ref="model_stock_storage_category"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<record model="ir.rule" id="stock_landed_cost_rule">
|
||||
<field name="name">stock_landed_cost multi-company</field>
|
||||
<field name="model_id" search="[('model','=','stock.landed.cost')]" model="ir.model"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
<field name="name">Mail Test Multi Company</field>
|
||||
<field name="model_id" ref="test_mail.model_mail_test_multi_company"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_test_multi_company_read_rule" model="ir.rule">
|
||||
<field name="name">MC Readonly Rule</field>
|
||||
<field name="model_id" ref="test_mail.model_mail_test_multi_company_read"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<field name="name">Mail Test Multi Company With Activity</field>
|
||||
<field name="model_id" ref="test_mail.model_mail_test_multi_company_with_activity"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<!-- TICKET-LIKE -->
|
||||
@@ -36,7 +36,7 @@
|
||||
<field name="name">Mail Test Ticket Multi Company</field>
|
||||
<field name="model_id" ref="test_mail.model_mail_test_ticket_mc"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="mail_test_ticket_mc_rule_portal" model="ir.rule">
|
||||
<field name="name">Portal Mail Test Ticket Multi Company</field>
|
||||
@@ -57,7 +57,7 @@
|
||||
<record id="mail_test_container_mc_rule" model="ir.rule">
|
||||
<field name="name">Mail Test Container Multi Company</field>
|
||||
<field name="model_id" ref="test_mail.model_mail_test_container_mc"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="mail_test_container_mc_rule_portal" model="ir.rule">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<field name="name">TestRating: Multi Company</field>
|
||||
<field name="model_id" ref="test_mail_full.model_mail_test_rating"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
<record id="mail_test_rating_rule_portal" model="ir.rule">
|
||||
<field name="name">TestRating: Portal should follow</field>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
the multi-company rule because it might interfere with the user's company rule
|
||||
and make some users unselectable in relational fields. This means that partners
|
||||
of internal users are always visible, not matter the company setting. -->
|
||||
<field name="domain_force">['|', '|', ('partner_share', '=', False), ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">['|', ('partner_share', '=', False), ('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="res_partner_portal_public_rule">
|
||||
@@ -56,13 +56,13 @@
|
||||
<record id="res_partner_bank_rule" model="ir.rule">
|
||||
<field name="name">Partner bank company rule</field>
|
||||
<field name="model_id" ref="model_res_partner_bank"/>
|
||||
<field name="domain_force">['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="res_currency_rate_rule" model="ir.rule">
|
||||
<field name="name">multi-company currency rate rule</field>
|
||||
<field name="model_id" ref="model_res_currency_rate"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
<record id="change_password_rule" model="ir.rule">
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
<field name="name">Property multi-company</field>
|
||||
<field name="model_id" ref="model_ir_property"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id', 'in', company_ids),('company_id','=',False)]</field>
|
||||
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user