From 7ad9487a83539d13fcbaccf605e3b0180280fd2d Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Thu, 1 Sep 2016 13:14:53 +0200 Subject: [PATCH] [IMP] account: remove required attribute on stored and related field The field journal_id and date are both required on account.move and are stored related on account.move.line. Setting the required on the account.move.line allows to make it required in the views or for the ORM but in practice it will be same as it's required on the parent. Making it required is a performance killer as it forces to specify a value for the create which will retrigger an update on the parent move. This means that adding a line with a date value on an account.move with already 10 lines will trigger 11 updates (date of the new line -> date of the move -> date on the 10 existing lines), even if the value has not changed. --- addons/account/models/account_move.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 0470655af7b..91537199ad1 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -395,12 +395,12 @@ class AccountMoveLine(models.Model): matched_credit_ids = fields.One2many('account.partial.reconcile', 'debit_move_id', String='Matched Credits', help='Credit journal items that are matched with this journal item.') journal_id = fields.Many2one('account.journal', related='move_id.journal_id', string='Journal', - default=_get_journal, required=True, index=True, store=True, copy=False) + default=_get_journal, index=True, store=True, copy=False) # related is required blocked = fields.Boolean(string='No Follow-up', default=False, help="You can check this box to mark this journal item as a litigation with the associated partner") date_maturity = fields.Date(string='Due date', index=True, required=True, help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.") - date = fields.Date(related='move_id.date', string='Date', required=True, index=True, default=fields.Date.context_today, store=True, copy=False) + date = fields.Date(related='move_id.date', string='Date', index=True, store=True, copy=False) # related is required analytic_line_ids = fields.One2many('account.analytic.line', 'move_id', string='Analytic lines', oldname="analytic_lines") tax_ids = fields.Many2many('account.tax', string='Taxes') tax_line_id = fields.Many2one('account.tax', string='Originator tax', ondelete='restrict')