changeset 861772cd6789 in tryton:5.0
details: https://hg.tryton.org/tryton?cmd=changeset;node=861772cd6789
description:
        Avoid comparison between tuple and int in one2many position

        Such comparison is no more supported on Python 3.

        issue7998
        review46801002
        (grafted from cc41325ecdeabdf20c714e74c958653aae331a1a)
diffstat:

 tryton/gui/window/view_form/screen/screen.py          |   4 ++--
 tryton/gui/window/view_form/view/form_gtk/one2many.py |  11 ++++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)

diffs (51 lines):

diff -r 0e1c23259e75 -r 861772cd6789 
tryton/gui/window/view_form/screen/screen.py
--- a/tryton/gui/window/view_form/screen/screen.py      Fri Mar 08 18:39:27 
2019 +0100
+++ b/tryton/gui/window/view_form/screen/screen.py      Fri Mar 08 18:45:21 
2019 +0100
@@ -428,8 +428,8 @@
                 # XXX offset?
                 pos = record.get_index_path()
         else:
-            pos = None
-        self.signal('record-message', (pos or 0, len(self.group) + self.offset,
+            pos = 0
+        self.signal('record-message', (pos, len(self.group) + self.offset,
             self.search_count, record and record.id))
         attachment_count = 0
         if record and record.attachment_count > 0:
diff -r 0e1c23259e75 -r 861772cd6789 
tryton/gui/window/view_form/view/form_gtk/one2many.py
--- a/tryton/gui/window/view_form/view/form_gtk/one2many.py     Fri Mar 08 
18:39:27 2019 +0100
+++ b/tryton/gui/window/view_form/view/form_gtk/one2many.py     Fri Mar 08 
18:45:21 2019 +0100
@@ -254,6 +254,11 @@
             o2m_size = None
             size_limit = False
 
+        first = last = False
+        if isinstance(self._position, int):
+            first = self._position <= 1
+            last = self._position >= self._length
+
         self.but_new.set_sensitive(bool(
                 not self._readonly
                 and self.attrs.get('create', True)
@@ -273,10 +278,10 @@
                 and access['read']))
         self.but_next.set_sensitive(bool(
                 self._position
-                and self._position < self._length))
+                and not last))
         self.but_pre.set_sensitive(bool(
                 self._position
-                and self._position > 1))
+                and not first))
         if self.attrs.get('add_remove'):
             self.but_add.set_sensitive(bool(
                     not self._readonly
@@ -478,7 +483,7 @@
     def _sig_label(self, screen, signal_data):
         self._position = signal_data[0]
         self._length = signal_data[1]
-        if self._position >= 1:
+        if self._position:
             name = str(self._position)
         else:
             name = '_'

Reply via email to