diff options
Diffstat (limited to 'odoo/addons/base/models')
| -rw-r--r-- | odoo/addons/base/models/res_country.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/odoo/addons/base/models/res_country.py b/odoo/addons/base/models/res_country.py index dfcf758bdbd..9bbbbe359e1 100644 --- a/odoo/addons/base/models/res_country.py +++ b/odoo/addons/base/models/res_country.py @@ -5,6 +5,7 @@ import re import logging from odoo import api, fields, models from odoo.osv import expression +from odoo.exceptions import UserError from psycopg2 import IntegrityError from odoo.tools.translate import _ _logger = logging.getLogger(__name__) @@ -120,6 +121,15 @@ class Country(models.Model): code = FLAG_MAPPING.get(country.code, country.code.lower()) country.image_url = "/base/static/img/country_flags/%s.png" % code + @api.constrains('address_format') + def _check_address_format(self): + for record in self: + if record.address_format: + address_fields = self.env['res.partner']._formatting_address_fields() + ['state_code', 'state_name', 'country_code', 'country_name', 'company_name'] + try: + record.address_format % {i: 1 for i in address_fields} + except (ValueError, KeyError): + raise UserError(_('The layout contains an invalid format key')) class CountryGroup(models.Model): _description = "Country Group" |
