[tryton-debian-vcs] tryton-client branch debian updated. debian/3.2.3-1-4-gdb8a5de

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Wed Oct 8 16:49:52 UTC 2014


The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-client.git;a=commitdiff;h=debian/3.2.3-1-4-gdb8a5de

commit db8a5de4757e9a785bd5cf65226c89239f22c812
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Oct 8 13:49:05 2014 +0200

    Releasing debian version 3.2.4-1.
    
    Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>

diff --git a/debian/changelog b/debian/changelog
index 42e2d82..6fd79da 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-client (3.2.4-1) unstable; urgency=medium
+
+  * Adding actual upstream signing key.
+  * Updating to Standards-Version: 3.9.6, no changes needed.
+  * Merging upstream version 3.2.4.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Wed, 08 Oct 2014 13:49:05 +0200
+
 tryton-client (3.2.3-1) unstable; urgency=medium
 
   * Merging upstream version 3.2.3.
commit 110790d4cf658521f1c5aab8087d51c90c5a8f08
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Oct 8 13:49:01 2014 +0200

    Merging upstream version 3.2.4.

diff --git a/CHANGELOG b/CHANGELOG
index e1b7581..be6184e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 3.2.4 - 2014-09-29
+* Bug fixes (see mercurial logs for details)
+
 Version 3.2.3 - 2014-08-03
 * Bug fixes (see mercurial logs for details)
 
diff --git a/PKG-INFO b/PKG-INFO
index f754e70..8bd6c16 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: tryton
-Version: 3.2.3
+Version: 3.2.4
 Summary: Tryton client
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/tryton.egg-info/PKG-INFO b/tryton.egg-info/PKG-INFO
index f754e70..8bd6c16 100644
--- a/tryton.egg-info/PKG-INFO
+++ b/tryton.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: tryton
-Version: 3.2.3
+Version: 3.2.4
 Summary: Tryton client
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/tryton/common/domain_inversion.py b/tryton/common/domain_inversion.py
index 531e522..e2b8a12 100644
--- a/tryton/common/domain_inversion.py
+++ b/tryton/common/domain_inversion.py
@@ -50,18 +50,21 @@ def is_leaf(expression):
         and expression[1] in OPERATORS)
 
 
+def constrained_leaf(part, boolop=operator.and_):
+    field, operand, value = part[:3]
+    if operand == '=' and boolop == operator.and_:
+        # We should consider that other domain inversion will set a correct
+        # value to this field
+        return True
+    return False
+
+
 def eval_leaf(part, context, boolop=operator.and_):
     field, operand, value = part[:3]
     if '.' in field:
         # In the case where the leaf concerns a m2o then having a value in the
         # evaluation context is deemed suffisant
         return bool(context.get(field.split('.')[0]))
-    if (operand == '='
-            and context.get(field) is None
-            and boolop == operator.and_):
-        # We should consider that other domain inversion will set a correct
-        # value to this field
-        return True
     context_field = context.get(field)
     if isinstance(context_field, datetime.date) and not value:
         if isinstance(context_field, datetime.datetime):
@@ -247,7 +250,8 @@ class And(object):
                 field = part[0]
                 if (field not in context
                         or field in context
-                        and eval_leaf(part, context, operator.and_)):
+                        and (eval_leaf(part, context, operator.and_)
+                            or constrained_leaf(part, operator.and_))):
                     result.append(True)
                 else:
                     return False
@@ -290,7 +294,8 @@ class Or(And):
                 field = part[0]
                 field = self.base(field)
                 if (field in context
-                        and eval_leaf(part, context, operator.or_)):
+                        and (eval_leaf(part, context, operator.or_)
+                                or constrained_leaf(part, operator.or_))):
                     return True
                 elif (field in context
                         and not eval_leaf(part, context, operator.or_)):
@@ -383,7 +388,7 @@ def test_andor_inversion():
 def test_andand_inversion():
     domain = [[['x', '=', 4], ['y', '>', 6]], ['z', '=', 3]]
     assert domain_inversion(domain, 'z') == [['z', '=', 3]]
-    assert domain_inversion(domain, 'z', {'x': 5}) is False
+    assert domain_inversion(domain, 'z', {'x': 5}) == [['z', '=', 3]]
     assert domain_inversion(domain, 'z', {'y': 5}) is False
     assert domain_inversion(domain, 'z', {'x': 4, 'y': 7}) == [['z', '=', 3]]
 
diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py
index 37bda2e..c495db1 100644
--- a/tryton/gui/window/view_form/screen/screen.py
+++ b/tryton/gui/window/view_form/screen/screen.py
@@ -576,12 +576,13 @@ class Screen(SignalEvent):
 
         if delete:
             for record in records:
-                if record.parent:
-                    record.parent.save(force_reload=False)
                 if record in record.group.record_deleted:
                     record.group.record_deleted.remove(record)
                 if record in record.group.record_removed:
                     record.group.record_removed.remove(record)
+                if record.parent:
+                    # Save parent without deleted children
+                    record.parent.save(force_reload=False)
                 record.destroy()
 
         if idx > 0:
diff --git a/tryton/gui/window/view_form/view/form_gtk/multiselection.py b/tryton/gui/window/view_form/view/form_gtk/multiselection.py
index 0e44673..0de0f68 100644
--- a/tryton/gui/window/view_form/view/form_gtk/multiselection.py
+++ b/tryton/gui/window/view_form/view/form_gtk/multiselection.py
@@ -87,7 +87,8 @@ class MultiSelection(WidgetInterface, SelectionMixin):
         group = field.get_client(record)
         for element in group:
             if (element not in group.record_removed
-                    and element not in group.record_deleted):
+                    and element not in group.record_deleted
+                    and element.id in id2path):
                 selection.select_path(id2path[element.id])
 
     def __button_press(self, treeview, event):
diff --git a/tryton/gui/window/win_export.py b/tryton/gui/window/win_export.py
index c70164e..903b687 100644
--- a/tryton/gui/window/win_export.py
+++ b/tryton/gui/window/win_export.py
@@ -291,7 +291,7 @@ class WinExport(NoModal):
             return
         try:
             lines = RPCExecute('model', 'ir.export.line', 'read',
-                sum((x['export_fields'] for x in exports), []), None,
+                sum((list(x['export_fields']) for x in exports), []), None,
                 context=self.context)
         except RPCException:
             return
diff --git a/tryton/version.py b/tryton/version.py
index 2b7967d..451b8ce 100644
--- a/tryton/version.py
+++ b/tryton/version.py
@@ -1,6 +1,6 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 PACKAGE = "tryton"
-VERSION = "3.2.3"
+VERSION = "3.2.4"
 LICENSE = "GPL-3"
 WEBSITE = "http://www.tryton.org/"
-- 
tryton-client



More information about the tryton-debian-vcs mailing list