diff --git a/addons/hr_timesheet/models/hr_timesheet.py b/addons/hr_timesheet/models/hr_timesheet.py index c1390dc4fd0..7423a4eca29 100644 --- a/addons/hr_timesheet/models/hr_timesheet.py +++ b/addons/hr_timesheet/models/hr_timesheet.py @@ -40,11 +40,11 @@ class AccountAnalyticLine(models.Model): task_id = fields.Many2one( 'project.task', 'Task', index=True, - compute='_compute_task_id', store=True, readonly=False, precompute=True, + compute='_compute_task_id', store=True, readonly=False, domain="[('company_id', '=', company_id), ('project_id.allow_timesheets', '=', True), ('project_id', '=?', project_id)]") project_id = fields.Many2one( 'project.project', 'Project', domain=_domain_project_id, - compute='_compute_project_id', store=True, readonly=False, precompute=True) + compute='_compute_project_id', store=True, readonly=False) user_id = fields.Many2one(compute='_compute_user_id', store=True, readonly=False) employee_id = fields.Many2one('hr.employee', "Employee", domain=_domain_employee_id) department_id = fields.Many2one('hr.department', "Department", compute='_compute_department_id', store=True, compute_sudo=True) diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 8b4a008d350..659290d0eef 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -937,7 +937,7 @@ class Task(models.Model): copy=False, readonly=True) project_id = fields.Many2one('project.project', string='Project', recursive=True, - compute='_compute_project_id', store=True, readonly=False, precompute=True, + compute='_compute_project_id', store=True, readonly=False, index=True, tracking=True, check_company=True, change_default=True) # Defines in which project the task will be displayed / taken into account in statistics. # Example: 1 task A with 1 subtask B in project P @@ -968,7 +968,7 @@ class Task(models.Model): help="The current user's personal task stage.") partner_id = fields.Many2one('res.partner', string='Customer', recursive=True, tracking=True, - compute='_compute_partner_id', store=True, readonly=False, precompute=True, + compute='_compute_partner_id', store=True, readonly=False, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") partner_is_company = fields.Boolean(related='partner_id.is_company', readonly=True) commercial_partner_id = fields.Many2one(related='partner_id.commercial_partner_id') diff --git a/addons/sale/models/sale_order_line.py b/addons/sale/models/sale_order_line.py index ad433aef278..8572c0b488c 100644 --- a/addons/sale/models/sale_order_line.py +++ b/addons/sale/models/sale_order_line.py @@ -224,7 +224,7 @@ class SaleOrderLine(models.Model): ('invoiced', 'Fully Invoiced'), ('to invoice', 'To Invoice'), ('no', 'Nothing to Invoice') - ], string='Invoice Status', compute='_compute_invoice_status', store=True, precompute=True) + ], string='Invoice Status', compute='_compute_invoice_status', store=True) price_unit = fields.Float( 'Unit Price', required=True, digits='Product Price', compute='_compute_price_unit', store=True, readonly=False, precompute=True) @@ -287,21 +287,21 @@ class SaleOrderLine(models.Model): " - Stock Moves: the quantity comes from confirmed pickings\n") qty_delivered = fields.Float( 'Delivered Quantity', copy=False, - compute='_compute_qty_delivered', store=True, readonly=False, precompute=True, + compute='_compute_qty_delivered', store=True, readonly=False, digits='Product Unit of Measure') qty_to_invoice = fields.Float( - compute='_compute_qty_to_invoice', string='To Invoice Quantity', store=True, precompute=True, + compute='_compute_qty_to_invoice', string='To Invoice Quantity', store=True, digits='Product Unit of Measure') qty_invoiced = fields.Float( - compute='_compute_qty_invoiced', string='Invoiced Quantity', store=True, precompute=True, + compute='_compute_qty_invoiced', string='Invoiced Quantity', store=True, digits='Product Unit of Measure') untaxed_amount_invoiced = fields.Monetary( "Untaxed Invoiced Amount", - compute='_compute_untaxed_amount_invoiced', store=True, precompute=True) + compute='_compute_untaxed_amount_invoiced', store=True) untaxed_amount_to_invoice = fields.Monetary( "Untaxed Amount To Invoice", - compute='_compute_untaxed_amount_to_invoice', store=True, precompute=True) + compute='_compute_untaxed_amount_to_invoice', store=True) analytic_tag_ids = fields.Many2many( 'account.analytic.tag', string='Analytic Tags', diff --git a/addons/sale_project/models/project.py b/addons/sale_project/models/project.py index 6910bc29ed3..50c696c5229 100644 --- a/addons/sale_project/models/project.py +++ b/addons/sale_project/models/project.py @@ -12,7 +12,7 @@ class Project(models.Model): sale_line_id = fields.Many2one( 'sale.order.line', 'Sales Order Item', copy=False, - compute="_compute_sale_line_id", store=True, readonly=False, index=True, precompute=True, + compute="_compute_sale_line_id", store=True, readonly=False, index=True, domain="[('is_service', '=', True), ('is_expense', '=', False), ('state', 'in', ['sale', 'done']), ('order_partner_id', '=?', partner_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]", help="Sales order item to which the project is linked. Link the timesheet entry to the sales order item defined on the project. " "Only applies on tasks without sale order item defined, and if the employee is not in the 'Employee/Sales Order Item Mapping' of the project.") @@ -141,7 +141,7 @@ class ProjectTask(models.Model): sale_line_id = fields.Many2one( 'sale.order.line', 'Sales Order Item', copy=False, tracking=True, index=True, recursive=True, - compute='_compute_sale_line', store=True, readonly=False, precompute=True, + compute='_compute_sale_line', store=True, readonly=False, domain="[('company_id', '=', company_id), ('is_service', '=', True), ('order_partner_id', 'child_of', commercial_partner_id), ('is_expense', '=', False), ('state', 'in', ['sale', 'done'])]", help="Sales Order Item to which the time spent on this task will be added, in order to be invoiced to your customer.") project_sale_order_id = fields.Many2one('sale.order', string="Project's sale order", related='project_id.sale_order_id') diff --git a/addons/sale_timesheet/models/account.py b/addons/sale_timesheet/models/account.py index 3e32189b82b..4db3957ccc5 100644 --- a/addons/sale_timesheet/models/account.py +++ b/addons/sale_timesheet/models/account.py @@ -25,9 +25,7 @@ class AccountAnalyticLine(models.Model): compute='_compute_timesheet_invoice_type', compute_sudo=True, store=True, readonly=True) commercial_partner_id = fields.Many2one('res.partner', compute="_compute_commercial_partner") timesheet_invoice_id = fields.Many2one('account.move', string="Invoice", readonly=True, copy=False, help="Invoice created from the timesheet") - so_line = fields.Many2one( - compute="_compute_so_line", store=True, readonly=False, precompute=True, - domain="[('is_service', '=', True), ('is_expense', '=', False), ('state', 'in', ['sale', 'done']), ('order_partner_id', 'child_of', commercial_partner_id)]") + so_line = fields.Many2one(compute="_compute_so_line", store=True, readonly=False, domain="[('is_service', '=', True), ('is_expense', '=', False), ('state', 'in', ['sale', 'done']), ('order_partner_id', 'child_of', commercial_partner_id)]") # we needed to store it only in order to be able to groupby in the portal order_id = fields.Many2one(related='so_line.order_id', store=True, readonly=False) is_so_line_edited = fields.Boolean("Is Sales Order Item Manually Edited") diff --git a/addons/sale_timesheet/models/project.py b/addons/sale_timesheet/models/project.py index bd774364fa8..ddee7e27bbd 100644 --- a/addons/sale_timesheet/models/project.py +++ b/addons/sale_timesheet/models/project.py @@ -54,7 +54,7 @@ class Project(models.Model): default=_default_timesheet_product_id) warning_employee_rate = fields.Boolean(compute='_compute_warning_employee_rate') partner_id = fields.Many2one( - compute='_compute_partner_id', store=True, readonly=False, precompute=True) + compute='_compute_partner_id', store=True, readonly=False) @api.depends('sale_line_id', 'sale_line_employee_ids', 'allow_billable') def _compute_pricing_type(self): diff --git a/addons/sale_timesheet/models/project_sale_line_employee_map.py b/addons/sale_timesheet/models/project_sale_line_employee_map.py index f5c732b649b..6ca913e2017 100644 --- a/addons/sale_timesheet/models/project_sale_line_employee_map.py +++ b/addons/sale_timesheet/models/project_sale_line_employee_map.py @@ -12,7 +12,7 @@ class ProjectProductEmployeeMap(models.Model): employee_id = fields.Many2one('hr.employee', "Employee", required=True) sale_line_id = fields.Many2one( 'sale.order.line', "Sales Order Item", - compute="_compute_sale_line_id", store=True, readonly=False, precompute=True, + compute="_compute_sale_line_id", store=True, readonly=False, domain="""[ ('is_service', '=', True), ('is_expense', '=', False), diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index 6d1576ea9af..f1eb1115bc5 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -117,7 +117,7 @@ class StockMove(models.Model): "its current stock) to gather products. If we want to chain moves and have this one to wait for the previous, " "this second option should be chosen.") scrapped = fields.Boolean( - 'Scrapped', related='location_dest_id.scrap_location', readonly=True, store=True, precompute=True) + 'Scrapped', related='location_dest_id.scrap_location', readonly=True, store=True) scrap_ids = fields.One2many('stock.scrap', 'move_id') group_id = fields.Many2one('procurement.group', 'Procurement Group', default=_default_group_id) rule_id = fields.Many2one(