diff --git a/addons/product/product.py b/addons/product/product.py
index eabd9494908..12ad7676fb0 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -482,6 +482,19 @@ class product_product(osv.osv):
'pricelist_id': fields.dummy(string='Pricelist', relation='product.pricelist', type='many2one'),
'name_template': fields.related('product_tmpl_id', 'name', string="Name", type='char', size=128, store=True),
}
+
+ def unlink(self, cr, uid, ids, context=None):
+ unlink_ids = []
+ unlink_product_tmpl_ids = []
+ for product in self.browse(cr, uid, ids, context=context):
+ tmpl_id = product.product_tmpl_id.id
+ # Check if the product is last product of this template
+ other_product_ids = self.search(cr, uid, [('product_tmpl_id', '=', tmpl_id), ('id', '!=', product.id)], context=context)
+ if not other_product_ids:
+ unlink_product_tmpl_ids.append(tmpl_id)
+ unlink_ids.append(product.id)
+ self.pool.get('product.template').unlink(cr, uid, unlink_product_tmpl_ids, context=context)
+ return super(product_product, self).unlink(cr, uid, unlink_ids, context=context)
def onchange_uom(self, cursor, user, ids, uom_id,uom_po_id):
if uom_id and uom_po_id:
diff --git a/addons/purchase_requisition/security/ir.model.access.csv b/addons/purchase_requisition/security/ir.model.access.csv
index 4e14688ecc5..ec8c031f88b 100644
--- a/addons/purchase_requisition/security/ir.model.access.csv
+++ b/addons/purchase_requisition/security/ir.model.access.csv
@@ -1,7 +1,7 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_purchase_requisition","purchase.requisition","model_purchase_requisition","purchase.group_purchase_user",1,1,1,1
-"access_purchase_requisition_line","purchase.requisition.line","model_purchase_requisition_line","purchase.group_purchase_user",1,1,1,1
+"access_purchase_requisition_line_purchase_user","purchase.requisition.line","model_purchase_requisition_line","purchase.group_purchase_user",1,1,1,1
"access_purchase_requisition_manager","purchase.requisition manager","model_purchase_requisition","purchase.group_purchase_manager",1,0,0,0
"access_purchase_requisition_line_manager","purchase.requisition.line manager","model_purchase_requisition_line","purchase.group_purchase_manager",1,0,0,0
-"access_purchase_requisition","purchase.requisition","model_purchase_requisition","stock.group_stock_manager",1,0,1,0
-"access_purchase_requisition_line","purchase.requisition.line","model_purchase_requisition_line","stock.group_stock_manager",1,0,1,0
+"access_purchase_requisition_stock_manager","purchase.requisition","model_purchase_requisition","stock.group_stock_manager",1,0,1,0
+"access_purchase_requisition_line_stock_manager","purchase.requisition.line","model_purchase_requisition_line","stock.group_stock_manager",1,0,1,0
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 85c1231b75a..2bde13b6771 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -773,7 +773,7 @@
-
+
@@ -967,7 +967,7 @@
-
+
@@ -1189,7 +1189,7 @@
-
+