details:   https://code.tryton.org/tryton/commit/0d64bfc7f6a0
branch:    8.0
user:      Nicolas Évrard <[email protected]>
date:      Fri Sep 18 23:52:09 2026 +0200
description:
        Support getting and setting tree widths without a screen width

        Closes #15099
        (grafted from bdec2127549993b25a44c2057a3f2b7a824ecdc2)
diffstat:

 trytond/trytond/ir/ui/view.py |  25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diffs (52 lines):

diff -r 045dab2ec5ac -r 0d64bfc7f6a0 trytond/trytond/ir/ui/view.py
--- a/trytond/trytond/ir/ui/view.py     Wed Sep 30 08:15:23 2026 +0200
+++ b/trytond/trytond/ir/ui/view.py     Fri Sep 18 23:52:09 2026 +0200
@@ -471,8 +471,9 @@
         ondelete='CASCADE')
     screen_width = fields.Integer(
         "Screen Width",
-        domain=[
+        domain=['OR',
             ('screen_width', '>=', 0),
+            ('screen_width', '=', None),
             ])
     width = fields.Integer(
         "Width",
@@ -542,11 +543,14 @@
 
     @classmethod
     def get_width(cls, model, width):
-        for screen_width in WIDTH_BREAKPOINTS:
-            if width >= screen_width:
-                break
+        if width is None:
+            screen_width = None
         else:
-            screen_width = None
+            for screen_width in WIDTH_BREAKPOINTS:
+                if width >= screen_width:
+                    break
+            else:
+                screen_width = None
 
         user = Transaction().user
         records = cls.search([
@@ -591,11 +595,14 @@
         as value.
         width is the screen width.
         '''
-        for screen_width in WIDTH_BREAKPOINTS:
-            if width >= screen_width:
-                break
+        if width is None:
+            screen_width = None
         else:
-            screen_width = None
+            for screen_width in WIDTH_BREAKPOINTS:
+                if width >= screen_width:
+                    break
+            else:
+                screen_width = None
 
         user_id = Transaction().user
         records = cls.search([

Reply via email to