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 @@