diff options
| author | Arnold Moyaux <arm@odoo.com> | 2020-01-17 15:29:54 +0000 |
|---|---|---|
| committer | Arnold Moyaux <arm@odoo.com> | 2020-01-20 08:53:14 +0000 |
| commit | 87fde093d67ee23786d064cce47f6160199b7e8f (patch) | |
| tree | e72fc6683b3f0b1f45fe5c4f2b3dd2fe18819635 /addons/mrp_subcontracting | |
| parent | f211eaafcba64bf51a036218d6d6ebbf0864ab6b (diff) | |
[IMP] mrp_subcontracting: filter on partner and product
Allow to easily find product and partners related to subcontracting
closes odoo/odoo#43046
Task: 2158126
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
Diffstat (limited to 'addons/mrp_subcontracting')
| -rw-r--r-- | addons/mrp_subcontracting/__manifest__.py | 1 | ||||
| -rw-r--r-- | addons/mrp_subcontracting/models/res_partner.py | 12 | ||||
| -rw-r--r-- | addons/mrp_subcontracting/views/product_views.xml | 17 | ||||
| -rw-r--r-- | addons/mrp_subcontracting/views/res_partner_views.xml | 11 |
4 files changed, 41 insertions, 0 deletions
diff --git a/addons/mrp_subcontracting/__manifest__.py b/addons/mrp_subcontracting/__manifest__.py index 277229315a5..e40a4ced61f 100644 --- a/addons/mrp_subcontracting/__manifest__.py +++ b/addons/mrp_subcontracting/__manifest__.py @@ -17,6 +17,7 @@ 'views/stock_move_views.xml', 'views/stock_picking_views.xml', 'views/supplier_info_views.xml', + 'views/product_views.xml', 'wizard/stock_picking_return_views.xml', ], 'demo': [ diff --git a/addons/mrp_subcontracting/models/res_partner.py b/addons/mrp_subcontracting/models/res_partner.py index 603d5dbbe93..67756a80175 100644 --- a/addons/mrp_subcontracting/models/res_partner.py +++ b/addons/mrp_subcontracting/models/res_partner.py @@ -11,3 +11,15 @@ class ResPartner(models.Model): 'stock.location', string="Subcontractor Location", company_dependent=True, help="The stock location used as source and destination when sending\ goods to this contact during a subcontracting process.") + is_subcontractor = fields.Boolean( + string="Subcontractor", store=False, search="_search_is_subcontractor") + + def _search_is_subcontractor(self, operator, value): + assert operator in ('=', '!=', '<>') and value in (True, False), 'Operation not supported' + subcontractor_ids = self.env['mrp.bom'].search( + [('type', '=', 'subcontract')]).subcontractor_ids.ids + if (operator == '=' and value is True) or (operator in ('<>', '!=') and value is False): + search_operator = 'in' + else: + search_operator = 'not in' + return [('id', search_operator, subcontractor_ids)] diff --git a/addons/mrp_subcontracting/views/product_views.xml b/addons/mrp_subcontracting/views/product_views.xml new file mode 100644 index 00000000000..6ef4b32107e --- /dev/null +++ b/addons/mrp_subcontracting/views/product_views.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + <record id="mrp_subcontracting_product_template_search_view" model="ir.ui.view"> + <field name="name">mrp.subcontracting.product.template.search</field> + <field name="model">product.template</field> + <field name="inherit_id" ref="product.product_template_search_view" /> + <field name="groups_id" eval="[(4, ref('mrp.group_mrp_user'))]"/> + <field name="arch" type="xml"> + <xpath expr="//filter[@name='filter_to_purchase']" position="after"> + <filter string="Can be Subcontracted" name="filter_can_be_subcontracted" domain="[('bom_ids.type', '=', 'subcontract')]" /> + </xpath> + </field> + </record> + </data> +</odoo> + diff --git a/addons/mrp_subcontracting/views/res_partner_views.xml b/addons/mrp_subcontracting/views/res_partner_views.xml index ad54ee15c0e..5a94fc48fac 100644 --- a/addons/mrp_subcontracting/views/res_partner_views.xml +++ b/addons/mrp_subcontracting/views/res_partner_views.xml @@ -10,4 +10,15 @@ </xpath> </field> </record> + <record id="view_partner_mrp_subcontracting_filter" model="ir.ui.view"> + <field name="name">res.partner.select.inherit</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="base.view_res_partner_filter" /> + <field name="groups_id" eval="[(4, ref('mrp.group_mrp_user'))]"/> + <field name="arch" type="xml"> + <xpath expr="//filter[@name='inactive']" position="before"> + <filter string="Subcontractors" name="type_subcontractors" domain="[('is_subcontractor', '=', True)]" /> + </xpath> + </field> + </record> </odoo> |
