From a4e568738b677786e48e0b6f4aa850ef8f80d4a1 Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Thu, 23 May 2024 11:14:22 +0200 Subject: [PATCH] Allow admin users to update invoice line description Closes #13277 --- modules/account_invoice/invoice.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index 7cf0780a0f..0edcac939b 100644 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -2311,7 +2311,13 @@ class InvoiceLine(sequence_ordered(), ModelSQL, ModelView, TaxableMixin): 'invisible': ~Eval('type').in_(['line', 'subtotal']), }), 'get_amount') - description = fields.Text('Description', size=None, states=_states) + description = fields.Text( + "Description", + states={ + 'readonly': (_states['readonly'] + & ~Id('account', 'group_account_admin').in_( + Eval('context', {}).get('groups', []))), + }) summary = fields.Function(fields.Char('Summary'), 'on_change_with_summary') note = fields.Text('Note') taxes = fields.Many2Many('account.invoice.line-account.tax', @@ -2363,7 +2369,7 @@ class InvoiceLine(sequence_ordered(), ModelSQL, ModelView, TaxableMixin): @classmethod def __setup__(cls): super(InvoiceLine, cls).__setup__() - cls._check_modify_exclude = {'note', 'origin'} + cls._check_modify_exclude = {'note', 'origin', 'description'} # Set account domain dynamically for kind cls.account.domain = [