details:   https://code.tryton.org/tryton/commit/3f014f4df054
branch:    default
user:      Cédric Krier <[email protected]>
date:      Tue Sep 29 17:17:01 2026 +0200
description:
        Ensure street format is stripped as empty when substituted with empty 
values
diffstat:

 modules/party/address.py  |  7 ++++++-
 modules/party/message.xml |  3 +++
 2 files changed, 9 insertions(+), 1 deletions(-)

diffs (34 lines):

diff -r 40e3efe13239 -r 3f014f4df054 modules/party/address.py
--- a/modules/party/address.py  Tue Sep 29 17:15:28 2026 +0200
+++ b/modules/party/address.py  Tue Sep 29 17:17:01 2026 +0200
@@ -571,11 +571,16 @@
         substitutions = address._get_street_substitutions()
         for format_ in formats:
             try:
-                Template(format_.street_format).substitute(**substitutions)
+                value = Template(format_.street_format).substitute(
+                    **substitutions)
             except Exception as exception:
                 raise InvalidFormat(gettext('party.msg_invalid_format',
                         format=format_.street_format,
                         exception=exception)) from exception
+            if value := Address._strip(value, doublespace=True):
+                raise InvalidFormat(gettext('party.msg_invalid_format_strip',
+                        format=format_.format_,
+                        value=value)) from ValueError(value)
 
     @classmethod
     def check_number_format(cls, formats, field_names=None):
diff -r 40e3efe13239 -r 3f014f4df054 modules/party/message.xml
--- a/modules/party/message.xml Tue Sep 29 17:15:28 2026 +0200
+++ b/modules/party/message.xml Tue Sep 29 17:17:01 2026 +0200
@@ -48,6 +48,9 @@
         <record model="ir.message" id="msg_invalid_format">
             <field name="text">Invalid format "%(format)s" with exception 
"%(exception)s".</field>
         </record>
+        <record model="ir.message" id="msg_invalid_format_strip">
+            <field name="text">Invalid format "%(format)s". Empty address 
generates "%(value)s".</field>
+        </record>
         <record model="ir.message" id="msg_category_name_unique">
             <field name="text">The name of party category must be unique by 
parent.</field>
         </record>

Reply via email to