Files
odoo_source/addons/mrp_subcontracting/security/mrp_subcontracting_security.xml
T
Nicolas Pierre 99b56ec706 [IMP] mrp_subcontracting: subcontracting portal
Creation of a subcontracting portal to let the subcontractor register himself
all the components that were used for the production. The portal is
reusing the backend view of the stock picking where components were
registered before.

closes odoo/odoo#83465

Task: 2645298
Community-pr:  https://github.com/odoo/odoo/pull/83465
Enterprise-pr: https://github.com/odoo/enterprise/pull/24647
Related: odoo/upgrade#3402
Related: odoo/enterprise#24647
Signed-off-by: Arnold Moyaux <arm@odoo.com>
2022-04-11 11:01:50 +02:00

147 lines
8.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.rule" id="production_subcontractor_rule">
<field name="name">MRP Productions Subcontractor</field>
<field name="model_id" ref="model_mrp_production"/>
<field name="domain_force">[('subcontractor_id', '=', user.partner_id.commercial_partner_id.id)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="bom_subcontractor_rule">
<field name="name">MRP BoMs Subcontractor</field>
<field name="model_id" ref="mrp.model_mrp_bom"/>
<field name="domain_force">[('id', 'in', user.partner_id.commercial_partner_id.bom_ids.ids)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="bom_line_subcontractor_rule">
<field name="name">MRP BoM Lines Subcontractor</field>
<field name="model_id" ref="mrp.model_mrp_bom_line"/>
<field name="domain_force">[('id', 'in', user.partner_id.commercial_partner_id.bom_ids.bom_line_ids.ids)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="consumption_warning_subcontractor_rule">
<field name="name">MRP Consumption Warnings Subcontractor</field>
<field name="model_id" ref="mrp.model_mrp_consumption_warning"/>
<field name="domain_force">[('mrp_production_ids', 'in', user.partner_id.commercial_partner_id.production_ids.ids)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="consumption_warning_line_subcontractor_rule">
<field name="name">MRP Consumption Warning Lines Subcontractor</field>
<field name="model_id" ref="mrp.model_mrp_consumption_warning_line"/>
<field name="domain_force">[('mrp_production_id', 'in', user.partner_id.commercial_partner_id.production_ids.ids)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="stock_move_subcontractor_rule">
<field name="name">Stock Moves Subcontractor</field>
<field name="model_id" ref="stock.model_stock_move"/>
<field name="domain_force">[
'|',
'|',
('production_id.subcontractor_id', '=', user.partner_id.commercial_partner_id.id),
('move_orig_ids.production_id.subcontractor_id', 'in', user.partner_id.commercial_partner_id.ids),
('raw_material_production_id.subcontractor_id', 'in', user.partner_id.commercial_partner_id.ids)
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="stock_move_line_subcontractor_rule">
<field name="name">Stock Move Lines Subcontractor</field>
<field name="model_id" ref="model_stock_move_line"/>
<field name="domain_force">[
'|',
'|',
('move_id.production_id.subcontractor_id', '=', user.partner_id.commercial_partner_id.id),
('move_id.move_orig_ids.production_id.subcontractor_id', 'in', user.partner_id.commercial_partner_id.ids),
('move_id.raw_material_production_id.subcontractor_id', 'in', user.partner_id.commercial_partner_id.ids),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="picking_subcontractor_rule">
<field name="name">Stock Pickings Subcontractor</field>
<field name="model_id" ref="model_stock_picking"/>
<field name="domain_force">[('partner_id.commercial_partner_id', '=', user.partner_id.commercial_partner_id.id)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="picking_type_subcontractor_rule">
<field name="name">Stock Picking Types Subcontractor</field>
<field name="model_id" ref="stock.model_stock_picking_type"/>
<field name="domain_force">['|', ('id', 'in', user.partner_id.commercial_partner_id.picking_ids.picking_type_id.ids), ('id', 'in', user.partner_id.commercial_partner_id.production_ids.picking_type_id.ids)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="stock_location_subcontractor_rule">
<field name="name">Stock Locations Subcontractor</field>
<field name="model_id" ref="stock.model_stock_location"/>
<field name="domain_force">[
'|',
'|',
'|',
'|',
('child_ids', 'in', user.partner_id.commercial_partner_id.picking_ids.location_id.ids),
('child_ids', 'in', user.partner_id.commercial_partner_id.picking_ids.location_dest_id.ids),
'|',
('id', 'in', user.partner_id.commercial_partner_id.picking_ids.location_id.ids),
('id', 'in', user.partner_id.commercial_partner_id.picking_ids.location_dest_id.ids),
'|',
('id', 'in', user.partner_id.commercial_partner_id.picking_ids.picking_type_id.warehouse_id.view_location_id.ids),
('id', 'in', user.partner_id.commercial_partner_id.production_ids.production_location_id.ids),
('id', 'in', user.partner_id.commercial_partner_id.production_ids.move_finished_ids.move_dest_ids.location_id.ids),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="stock_warehouse_subcontractor_rule">
<field name="name">Warehouses Subcontractor</field>
<field name="model_id" ref="stock.model_stock_warehouse"/>
<field name="domain_force">[('id', 'in', user.partner_id.commercial_partner_id.picking_ids.picking_type_id.warehouse_id.ids)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="stock_lot_subcontracting_rule" model="ir.rule">
<field name="name">Stock Lot Subcontractor</field>
<field name="model_id" ref="stock.model_stock_lot"/>
<field name="domain_force">[
'|',
'|',
('product_id', 'in', user.partner_id.commercial_partner_id.bom_ids.product_id.ids),
('product_id', 'in', user.partner_id.commercial_partner_id.bom_ids.product_tmpl_id.product_variant_ids.ids),
('product_id', 'in', user.partner_id.commercial_partner_id.bom_ids.bom_line_ids.product_id.ids),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="product_template_subcontracting_rule" model="ir.rule">
<field name="name">Product Template Subcontractor</field>
<field name="model_id" ref="product.model_product_template"/>
<field name="domain_force">[
'|',
'|',
('id', 'in', user.partner_id.commercial_partner_id.bom_ids.product_id.product_tmpl_id.ids),
('id', 'in', user.partner_id.commercial_partner_id.bom_ids.product_tmpl_id.ids),
('id', 'in', user.partner_id.commercial_partner_id.bom_ids.bom_line_ids.product_id.product_tmpl_id.ids),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="uom_subcontracting_rule" model="ir.rule">
<field name="name">UoM Subcontractor</field>
<field name="model_id" ref="uom.model_uom_uom"/>
<field name="domain_force">[
'|',
'|',
('category_id', 'in', user.partner_id.commercial_partner_id.bom_ids.product_id.product_tmpl_id.uom_id.category_id.ids),
('category_id', 'in', user.partner_id.commercial_partner_id.bom_ids.product_tmpl_id.uom_id.category_id.ids),
('category_id', 'in', user.partner_id.commercial_partner_id.bom_ids.bom_line_ids.product_id.product_tmpl_id.uom_id.category_id.ids),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
</odoo>