diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py index 74f6694748c..80abe268785 100644 --- a/addons/mrp/models/mrp_workorder.py +++ b/addons/mrp/models/mrp_workorder.py @@ -29,7 +29,7 @@ class MrpWorkorder(models.Model): states={'done': [('readonly', True)], 'cancel': [('readonly', True)], 'progress': [('readonly', True)]}, group_expand='_read_group_workcenter_id', check_company=True) working_state = fields.Selection( - string='Workcenter Status', related='workcenter_id.working_state', readonly=False, + string='Workcenter Status', related='workcenter_id.working_state', help='Technical: used in views only') product_id = fields.Many2one(related='production_id.product_id', readonly=True, store=True, check_company=True) product_tracking = fields.Selection(related="product_id.tracking") @@ -137,7 +137,7 @@ class MrpWorkorder(models.Model): next_work_order_id = fields.Many2one('mrp.workorder', "Next Work Order", check_company=True) scrap_ids = fields.One2many('stock.scrap', 'workorder_id') scrap_count = fields.Integer(compute='_compute_scrap_move_count', string='Scrap Move') - production_date = fields.Datetime('Production Date', related='production_id.date_planned_start', store=True, readonly=False) + production_date = fields.Datetime('Production Date', related='production_id.date_planned_start', store=True) json_popover = fields.Char('Popover Data JSON', compute='_compute_json_popover') show_json_popover = fields.Boolean('Show Popover?', compute='_compute_json_popover') consumption = fields.Selection(related='production_id.consumption') diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py index b0628547d7e..4953a083391 100644 --- a/addons/purchase/models/purchase.py +++ b/addons/purchase/models/purchase.py @@ -122,7 +122,7 @@ class PurchaseOrder(models.Model): payment_term_id = fields.Many2one('account.payment.term', 'Payment Terms', domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") incoterm_id = fields.Many2one('account.incoterms', 'Incoterm', states={'done': [('readonly', True)]}, help="International Commercial Terms are a series of predefined commercial terms used in international transactions.") - product_id = fields.Many2one('product.product', related='order_line.product_id', string='Product', readonly=False) + product_id = fields.Many2one('product.product', related='order_line.product_id', string='Product') user_id = fields.Many2one( 'res.users', string='Purchase Representative', index=True, tracking=True, default=lambda self: self.env.user, check_company=True) @@ -821,7 +821,7 @@ class PurchaseOrderLine(models.Model): account_analytic_id = fields.Many2one('account.analytic.account', store=True, string='Analytic Account', compute='_compute_analytic_id_and_tag_ids', readonly=False) analytic_tag_ids = fields.Many2many('account.analytic.tag', store=True, string='Analytic Tags', compute='_compute_analytic_id_and_tag_ids', readonly=False) company_id = fields.Many2one('res.company', related='order_id.company_id', string='Company', store=True, readonly=True) - state = fields.Selection(related='order_id.state', store=True, readonly=False) + state = fields.Selection(related='order_id.state', store=True) invoice_lines = fields.One2many('account.move.line', 'purchase_line_id', string="Bill Lines", readonly=True, copy=False) diff --git a/addons/purchase/views/purchase_views.xml b/addons/purchase/views/purchase_views.xml index 4dd6cc3212b..daad9bd6438 100644 --- a/addons/purchase/views/purchase_views.xml +++ b/addons/purchase/views/purchase_views.xml @@ -219,7 +219,7 @@ - + diff --git a/addons/purchase_requisition/models/product.py b/addons/purchase_requisition/models/product.py index 36f6a421c08..aa0528dbda2 100644 --- a/addons/purchase_requisition/models/product.py +++ b/addons/purchase_requisition/models/product.py @@ -7,7 +7,7 @@ from odoo import fields, models class SupplierInfo(models.Model): _inherit = 'product.supplierinfo' - purchase_requisition_id = fields.Many2one('purchase.requisition', related='purchase_requisition_line_id.requisition_id', string='Agreement', readonly=False) + purchase_requisition_id = fields.Many2one('purchase.requisition', related='purchase_requisition_line_id.requisition_id', string='Agreement') purchase_requisition_line_id = fields.Many2one('purchase.requisition.line') diff --git a/addons/purchase_requisition/models/purchase_requisition.py b/addons/purchase_requisition/models/purchase_requisition.py index 1ec44e203d3..6756a2c50dc 100644 --- a/addons/purchase_requisition/models/purchase_requisition.py +++ b/addons/purchase_requisition/models/purchase_requisition.py @@ -60,7 +60,7 @@ class PurchaseRequisition(models.Model): company_id = fields.Many2one('res.company', string='Company', required=True, default=lambda self: self.env.company) purchase_ids = fields.One2many('purchase.order', 'requisition_id', string='Purchase Orders', states={'done': [('readonly', True)]}) line_ids = fields.One2many('purchase.requisition.line', 'requisition_id', string='Products to Purchase', states={'done': [('readonly', True)]}, copy=True) - product_id = fields.Many2one('product.product', related='line_ids.product_id', string='Product', readonly=False) + product_id = fields.Many2one('product.product', related='line_ids.product_id', string='Product') state = fields.Selection(PURCHASE_REQUISITION_STATES, 'Status', tracking=True, required=True, copy=False, default='draft') diff --git a/addons/purchase_requisition/views/product_views.xml b/addons/purchase_requisition/views/product_views.xml index 3c0037030b3..9d9cc3d575d 100644 --- a/addons/purchase_requisition/views/product_views.xml +++ b/addons/purchase_requisition/views/product_views.xml @@ -7,7 +7,7 @@ - + diff --git a/addons/stock/models/product.py b/addons/stock/models/product.py index 0cbd54d86b2..3896e5c3ca9 100644 --- a/addons/stock/models/product.py +++ b/addons/stock/models/product.py @@ -599,7 +599,7 @@ class ProductTemplate(models.Model): # TDE FIXME: seems only visible in a view - remove me ? route_from_categ_ids = fields.Many2many( relation="stock.location.route", string="Category Routes", - related='categ_id.total_route_ids', readonly=False, related_sudo=False) + related='categ_id.total_route_ids', related_sudo=False) @api.depends('type') def _compute_has_available_route_ids(self): diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index 46603dee8d2..39c31bbf3fd 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -69,7 +69,7 @@ class StockMove(models.Model): # TDE FIXME: make it stored, otherwise group will not work product_tmpl_id = fields.Many2one( 'product.template', 'Product Template', - related='product_id.product_tmpl_id', readonly=False, + related='product_id.product_tmpl_id', help="Technical: used in views") location_id = fields.Many2one( 'stock.location', 'Source Location', diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py index 334e6cf4219..85aa0610e91 100644 --- a/addons/stock/models/stock_move_line.py +++ b/addons/stock/models/stock_move_line.py @@ -61,7 +61,7 @@ class StockMoveLine(models.Model): picking_type_use_existing_lots = fields.Boolean(related='picking_id.picking_type_id.use_existing_lots', readonly=True) picking_type_entire_packs = fields.Boolean(related='picking_id.picking_type_id.show_entire_packs', readonly=True) state = fields.Selection(related='move_id.state', store=True, related_sudo=False) - is_initial_demand_editable = fields.Boolean(related='move_id.is_initial_demand_editable', readonly=False) + is_initial_demand_editable = fields.Boolean(related='move_id.is_initial_demand_editable') is_locked = fields.Boolean(related='move_id.is_locked', default=True, readonly=True) consume_line_ids = fields.Many2many('stock.move.line', 'stock_move_line_consume_rel', 'consume_line_id', 'produce_line_id', help="Technical link to see who consumed what. ") produce_line_ids = fields.Many2many('stock.move.line', 'stock_move_line_consume_rel', 'produce_line_id', 'consume_line_id', help="Technical link to see which line was produced with this. ") diff --git a/addons/stock/models/stock_production_lot.py b/addons/stock/models/stock_production_lot.py index fbb9e322b92..b140700f132 100644 --- a/addons/stock/models/stock_production_lot.py +++ b/addons/stock/models/stock_production_lot.py @@ -20,7 +20,7 @@ class ProductionLot(models.Model): domain=lambda self: self._domain_product_id(), required=True, check_company=True) product_uom_id = fields.Many2one( 'uom.uom', 'Unit of Measure', - related='product_id.uom_id', store=True, readonly=False) + related='product_id.uom_id', store=True) quant_ids = fields.One2many('stock.quant', 'lot_id', 'Quants', readonly=True) product_qty = fields.Float('Quantity', compute='_product_qty') note = fields.Html(string='Description') diff --git a/addons/stock/models/stock_quant.py b/addons/stock/models/stock_quant.py index 216f88fa4fe..ca365b9fc75 100644 --- a/addons/stock/models/stock_quant.py +++ b/addons/stock/models/stock_quant.py @@ -56,7 +56,7 @@ class StockQuant(models.Model): ondelete='restrict', readonly=True, required=True, index=True, check_company=True) product_tmpl_id = fields.Many2one( 'product.template', string='Product Template', - related='product_id.product_tmpl_id', readonly=False) + related='product_id.product_tmpl_id') product_uom_id = fields.Many2one( 'uom.uom', 'Unit of Measure', readonly=True, related='product_id.uom_id') diff --git a/addons/stock/models/stock_rule.py b/addons/stock/models/stock_rule.py index 3d743553f7a..d30e7736534 100644 --- a/addons/stock/models/stock_rule.py +++ b/addons/stock/models/stock_rule.py @@ -64,7 +64,7 @@ class StockRule(models.Model): "Trigger Another Rule: the system will try to find a stock rule to bring the products in the source location. The available stock will be ignored.\n" "Take From Stock, if Unavailable, Trigger Another Rule: the products will be taken from the available stock of the source location." "If there is no stock available, the system will try to find a rule to bring the products in the source location.") - route_sequence = fields.Integer('Route Sequence', related='route_id.sequence', store=True, readonly=False, compute_sudo=True) + route_sequence = fields.Integer('Route Sequence', related='route_id.sequence', store=True, compute_sudo=True) picking_type_id = fields.Many2one( 'stock.picking.type', 'Operation Type', required=True, check_company=True, diff --git a/addons/stock/views/product_views.xml b/addons/stock/views/product_views.xml index 443fdeaeb56..c613c4da32e 100644 --- a/addons/stock/views/product_views.xml +++ b/addons/stock/views/product_views.xml @@ -115,7 +115,7 @@ attrs="{'invisible':[('type', 'not in', ['product', 'consu'])]}" class="btn btn-link pt-0" context="{'default_product_tmpl_id': id}"/> - + diff --git a/addons/stock/views/stock_production_lot_views.xml b/addons/stock/views/stock_production_lot_views.xml index 135132d2bce..3baa8f9201d 100644 --- a/addons/stock/views/stock_production_lot_views.xml +++ b/addons/stock/views/stock_production_lot_views.xml @@ -25,7 +25,7 @@