[FIX] sale_purchase: Access rights error
Fine tuning of https://github.com/odoo/odoo/commit/6236ed1a5b138c5165929aa3f5c1d1f4f6aa061c#diff-2f6cca7f38255368e4a54b0a19406aa4 Steps to reproduce the bug: - Install Sales and Purchase modules - Create a user U with access rights to Sales - Try to open an existing SO or try create one with U Bug: An access right error was raised because the non stored field purchase_line_count must be computed PS: the compute_sudo had no effect on field purchase_line_count because it's a non stored field. opw:2056746 closes odoo/odoo#36247 Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
This commit is contained in:
@@ -71,12 +71,12 @@ class SaleOrderLine(models.Model):
|
||||
_inherit = 'sale.order.line'
|
||||
|
||||
purchase_line_ids = fields.One2many('purchase.order.line', 'sale_line_id', string="Generated Purchase Lines", readonly=True, help="Purchase line generated by this Sales item on order confirmation, or when the quantity was increased.")
|
||||
purchase_line_count = fields.Integer("Number of generated purchase items", compute='_compute_purchase_count', compute_sudo=True)
|
||||
purchase_line_count = fields.Integer("Number of generated purchase items", compute='_compute_purchase_count')
|
||||
|
||||
@api.multi
|
||||
@api.depends('purchase_line_ids')
|
||||
def _compute_purchase_count(self):
|
||||
database_data = self.env['purchase.order.line'].read_group([('sale_line_id', 'in', self.ids)], ['sale_line_id'], ['sale_line_id'])
|
||||
database_data = self.env['purchase.order.line'].sudo().read_group([('sale_line_id', 'in', self.ids)], ['sale_line_id'], ['sale_line_id'])
|
||||
mapped_data = dict([(db['sale_line_id'][0], db['sale_line_id_count']) for db in database_data])
|
||||
for line in self:
|
||||
line.purchase_line_count = mapped_data.get(line.id, 0)
|
||||
|
||||
Reference in New Issue
Block a user