diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 745de3ed97a..05979e25191 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -2,7 +2,7 @@ from odoo import api, fields, models, _ from odoo.exceptions import RedirectWarning, UserError, ValidationError, AccessError -from odoo.tools import float_compare, date_utils, email_split, email_re, html_escape +from odoo.tools import float_compare, date_utils, email_split, email_re, html_escape, is_html_empty from odoo.tools.misc import formatLang, format_date, get_lang from datetime import date, timedelta @@ -144,7 +144,7 @@ class AccountMove(models.Model): default=fields.Date.context_today ) ref = fields.Char(string='Reference', copy=False, tracking=True) - narration = fields.Text(string='Terms and Conditions') + narration = fields.Html(string='Terms and Conditions') state = fields.Selection(selection=[ ('draft', 'Draft'), ('posted', 'Posted'), @@ -493,7 +493,7 @@ class AccountMove(models.Model): ''' Onchange made to filter the partners depending of the type. ''' if self.is_sale_document(include_receipts=True): if self.env['ir.config_parameter'].sudo().get_param('account.use_invoice_terms'): - self.narration = self.company_id.invoice_terms or self.env.company.invoice_terms + self.narration = self.company_id.invoice_terms if not is_html_empty(self.company_id.invoice_terms) else self.env.company.invoice_terms @api.onchange('invoice_line_ids') def _onchange_invoice_line_ids(self): diff --git a/addons/account/models/account_payment_term.py b/addons/account/models/account_payment_term.py index e220dc86538..328ee7153e9 100644 --- a/addons/account/models/account_payment_term.py +++ b/addons/account/models/account_payment_term.py @@ -16,7 +16,7 @@ class AccountPaymentTerm(models.Model): name = fields.Char(string='Payment Terms', translate=True, required=True) active = fields.Boolean(default=True, help="If the active field is set to False, it will allow you to hide the payment terms without removing it.") - note = fields.Text(string='Description on the Invoice', translate=True) + note = fields.Html(string='Description on the Invoice', translate=True) line_ids = fields.One2many('account.payment.term.line', 'payment_id', string='Terms', copy=True, default=_default_line_ids) company_id = fields.Many2one('res.company', string='Company') sequence = fields.Integer(required=True, default=10) diff --git a/addons/account/models/company.py b/addons/account/models/company.py index 093c5bbe28b..b26f1da6591 100644 --- a/addons/account/models/company.py +++ b/addons/account/models/company.py @@ -102,7 +102,7 @@ class ResCompany(models.Model): # account dashboard onboarding account_invoice_onboarding_state = fields.Selection(DASHBOARD_ONBOARDING_STATES, string="State of the account invoice onboarding panel", default='not_done') account_dashboard_onboarding_state = fields.Selection(DASHBOARD_ONBOARDING_STATES, string="State of the account dashboard onboarding panel", default='not_done') - invoice_terms = fields.Text(string='Default Terms and Conditions', translate=True) + invoice_terms = fields.Html(string='Default Terms and Conditions', translate=True) terms_type = fields.Selection([('plain', 'Terms as Notes'), ('html', 'Terms as Web Page')], string='Terms & Conditions format', default='plain') invoice_terms_html = fields.Html(string='Default Terms and Conditions as a Web page', translate=True, diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index 950b350972a..b1c2b86fc5a 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -28,7 +28,7 @@ class AccountFiscalPosition(models.Model): default=lambda self: self.env.company) account_ids = fields.One2many('account.fiscal.position.account', 'position_id', string='Account Mapping', copy=True) tax_ids = fields.One2many('account.fiscal.position.tax', 'position_id', string='Tax Mapping', copy=True) - note = fields.Text('Notes', translate=True, help="Legal mentions that have to be printed on the invoices.") + note = fields.Html('Notes', translate=True, help="Legal mentions that have to be printed on the invoices.") auto_apply = fields.Boolean(string='Detect Automatically', help="Apply automatically this fiscal position.") vat_required = fields.Boolean(string='VAT required', help="Apply only if partner has a VAT number.") company_country_id = fields.Many2one(string="Company Country", related='company_id.country_id') diff --git a/addons/account/models/res_config_settings.py b/addons/account/models/res_config_settings.py index 060a633e672..9ad028e8652 100644 --- a/addons/account/models/res_config_settings.py +++ b/addons/account/models/res_config_settings.py @@ -124,7 +124,7 @@ class ResConfigSettings(models.TransientModel): invoice_is_print = fields.Boolean(string='Print', related='company_id.invoice_is_print', readonly=False) invoice_is_email = fields.Boolean(string='Send Email', related='company_id.invoice_is_email', readonly=False) incoterm_id = fields.Many2one('account.incoterms', string='Default incoterm', related='company_id.incoterm_id', help='International Commercial Terms are a series of predefined commercial terms used in international transactions.', readonly=False) - invoice_terms = fields.Text(related='company_id.invoice_terms', string="Terms & Conditions", readonly=False) + invoice_terms = fields.Html(related='company_id.invoice_terms', string="Terms & Conditions", readonly=False) invoice_terms_html = fields.Html(related='company_id.invoice_terms_html', string="Terms & Conditions as a Web page", readonly=False) terms_type = fields.Selection( diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml index 7bb96ddbe00..57de620e593 100644 --- a/addons/account/views/account_move_views.xml +++ b/addons/account/views/account_move_views.xml @@ -1022,12 +1022,13 @@ - - + + +