summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/mrp_subcontracting/__manifest__.py1
-rw-r--r--addons/mrp_subcontracting/models/res_partner.py12
-rw-r--r--addons/mrp_subcontracting/views/product_views.xml17
-rw-r--r--addons/mrp_subcontracting/views/res_partner_views.xml11
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>