[tryton-debian-vcs] tryton-client branch debian updated. debian/3.4.1-1-4-geba6004

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Wed Feb 18 10:02:05 UTC 2015


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.4.1-1-4-geba6004

commit eba600426ab99ab9f3cac63bd24434a79c4b5be6
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Feb 17 21:16:10 2015 +0100

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

diff --git a/debian/changelog b/debian/changelog
index e191b42..cf3fd3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-client (3.4.2-1) unstable; urgency=medium
+
+  * Adding actual upstream signing key.
+  * Merging upstream version 3.4.2.
+  * Updating copyright file.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Tue, 17 Feb 2015 21:16:10 +0100
+
 tryton-client (3.4.1-1) unstable; urgency=medium
 
   * Merging upstream version 3.4.1.
commit 3dc62c0fc5fe9491a390096eae1bf3da31f0425f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Feb 17 21:16:10 2015 +0100

    Updating copyright file.

diff --git a/debian/copyright b/debian/copyright
index d92ac0a..9d15679 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -2,10 +2,10 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 
 Files: *
 Copyright: 2012-2013 Antoine Smolders
-           2010-2014 Nicolas Évrard
-           2007-2014 Cédric Krier
+           2010-2015 Nicolas Évrard
+           2007-2015 Cédric Krier
            2007-2013 Bertrand Chenal
-           2008-2014 B2CK SPRL
+           2008-2015 B2CK SPRL
            2008-2011 Udo Spallek
            2008-2011 virtual things - Preisler & Spallek GbR
            2011-2012 Rodrigo Hübner
commit 3ed867d1dcd2e6e6a19f348dc9a6f748cb694bff
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Feb 17 21:16:10 2015 +0100

    Merging upstream version 3.4.2.

diff --git a/CHANGELOG b/CHANGELOG
index 00f73a2..de0e445 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 3.4.2 - 2015-02-16
+* Bug fixes (see mercurial logs for details)
+
 Version 3.4.1 - 2014-12-03
 * Bug fixes (see mercurial logs for details)
 
diff --git a/COPYRIGHT b/COPYRIGHT
index c952d2e..ee03e0f 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,8 +1,8 @@
 Copyright (C) 2012-2013 Antoine Smolders.
-Copyright (C) 2010-2014 Nicolas Évrard.
-Copyright (C) 2007-2014 Cédric Krier.
+Copyright (C) 2010-2015 Nicolas Évrard.
+Copyright (C) 2007-2015 Cédric Krier.
 Copyright (C) 2007-2013 Bertrand Chenal.
-Copyright (C) 2008-2014 B2CK SPRL.
+Copyright (C) 2008-2015 B2CK SPRL.
 Copyright (C) 2008-2011 Udo Spallek.
 Copyright (C) 2008-2011 virtual things - Preisler & Spallek GbR.
 Copyright (C) 2011-2012 Rodrigo Hübner.
diff --git a/PKG-INFO b/PKG-INFO
index 8ad641b..64679f2 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: tryton
-Version: 3.4.1
+Version: 3.4.2
 Summary: Tryton client
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/setup.py b/setup.py
index 05957e0..3cbdbdb 100644
--- a/setup.py
+++ b/setup.py
@@ -109,7 +109,8 @@ elif sys.platform == 'darwin':
             'includes': ('pygtk, gtk, glib, cairo, pango, pangocairo, atk, '
                 'gobject, gio, gtk.keysyms'),
             'resources': 'tryton/plugins',
-            'frameworks': 'librsvg-2.2.dylib',
+            'frameworks':
+            'librsvg-2.2.dylib, libjpeg.8.dylib, libtiff.3.dylib',
             'plist': {
                 'CFBundleIdentifier': 'org.tryton',
                 'CFBundleName': 'Tryton',
diff --git a/tryton.egg-info/PKG-INFO b/tryton.egg-info/PKG-INFO
index 8ad641b..64679f2 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.4.1
+Version: 3.4.2
 Summary: Tryton client
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/tryton/common/domain_parser.py b/tryton/common/domain_parser.py
index 6006702..fad8c7a 100644
--- a/tryton/common/domain_parser.py
+++ b/tryton/common/domain_parser.py
@@ -12,7 +12,7 @@ import io
 from collections import OrderedDict
 
 from tryton.translate import date_format
-from tryton.common import untimezoned_date, datetime_strftime
+from tryton.common import untimezoned_date, timezoned_date, datetime_strftime
 from tryton.pyson import PYSONDecoder
 
 __all__ = ['DomainParser']
@@ -462,7 +462,10 @@ def format_value(field, value, target=None):
         if (not isinstance(value, datetime.datetime)
                 or value.time() == datetime.time.min):
             format_ = date_format()
-        return datetime_strftime(value, format_)
+            time = value
+        else:
+            time = timezoned_date(value)
+        return datetime_strftime(time, format_)
 
     def format_date():
         if not value:
@@ -588,7 +591,8 @@ def test_format_datetime():
     for value, result in (
             (datetime.date(2002, 12, 4), '12/04/2002'),
             (datetime.datetime(2002, 12, 4), '12/04/2002'),
-            (datetime.datetime(2002, 12, 4, 12, 30), '"12/04/2002 12:30:00"'),
+            (untimezoned_date(datetime.datetime(2002, 12, 4, 12, 30)),
+                '"12/04/2002 12:30:00"'),
             (False, ''),
             (None, ''),
             ):
@@ -655,7 +659,7 @@ def complete_value(field, value):
 
     def complete_datetime():
         yield datetime.date.today()
-        yield datetime.datetime.now()
+        yield datetime.datetime.utcnow()
 
     def complete_date():
         yield datetime.date.today()
diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py
index 68c765d..0eae7d1 100644
--- a/tryton/gui/window/view_form/model/field.py
+++ b/tryton/gui/window/view_form/model/field.py
@@ -113,7 +113,7 @@ class Field(object):
                             constraintfields.add(leaf[0])
                     if localpart != 'id' or recordpart not in constraintfields:
                         setdefault = False
-                if setdefault:
+                if setdefault and not pre_validate:
                     self.set_client(record, value)
                     self.get_state_attrs(record)['domain_readonly'] = (
                         domain_readonly)
@@ -626,6 +626,9 @@ class O2MField(Field):
         self._connect_value(group)
 
     def set_client(self, record, value, force_change=False):
+        # domain inversion could try to set None as value
+        if value is None:
+            value = []
         # domain inversion could try to set id as value
         if isinstance(value, (int, long)):
             value = [value]
@@ -718,7 +721,7 @@ class O2MField(Field):
             else:
                 ldomain = [('id', '=', None)]
         for record2 in record.value.get(self.name, []):
-            if not record2.loaded and record2.id >= 0:
+            if not record2.loaded and record2.id >= 0 and not pre_validate:
                 continue
             test &= record2.validate(softvalidation=softvalidation,
                 pre_validate=ldomain)
diff --git a/tryton/gui/window/view_form/view/form.py b/tryton/gui/window/view_form/view/form.py
index a19e6b4..a342c5c 100644
--- a/tryton/gui/window/view_form/view/form.py
+++ b/tryton/gui/window/view_form/view/form.py
@@ -499,8 +499,9 @@ class ViewForm(View):
                     if not field:
                         continue
                     if not field.get_state_attrs(record).get('valid', True):
-                        invalid_widgets.append(
-                            find_focusable_child(widget.widget))
+                        invalid_widget = find_focusable_child(widget.widget)
+                        if invalid_widget:
+                            invalid_widgets.append(invalid_widget)
             invalid_widgets.sort(key=cmp_to_key(tab_compare))
             if invalid_widgets:
                 focus_widget = invalid_widgets[0]
diff --git a/tryton/gui/window/view_form/view/form_gtk/many2many.py b/tryton/gui/window/view_form/view/form_gtk/many2many.py
index 075f438..3810bc5 100644
--- a/tryton/gui/window/view_form/view/form_gtk/many2many.py
+++ b/tryton/gui/window/view_form/view/form_gtk/many2many.py
@@ -189,6 +189,8 @@ class Many2Many(Widget):
                 screen.current_record.save()
                 # Force a reload on next display
                 self.screen.current_record.cancel()
+                # Force a display to clear the CellCache
+                self.screen.display()
         WinForm(screen, callback)
 
     def _readonly_set(self, value):
diff --git a/tryton/gui/window/view_form/view/graph.py b/tryton/gui/window/view_form/view/graph.py
index 2105130..bcba52c 100644
--- a/tryton/gui/window/view_form/view/graph.py
+++ b/tryton/gui/window/view_form/view/graph.py
@@ -95,7 +95,7 @@ class ViewGraph(View):
     def get_buttons(self):
         return []
 
-    def save(self, widget, graph):
+    def save(self, widget):
         parent = get_toplevel_window()
         dia = gtk.Dialog(_('Save As'), parent,
             gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
@@ -162,7 +162,8 @@ class ViewGraph(View):
                     if not filename.endswith('.png'):
                         filename = filename + '.png'
                     try:
-                        graph.export_png(filename, width, height)
+                        self.widgets['root'].export_png(
+                            filename, width, height)
                         break
                     except MemoryError:
                         message(_('Image size too large!'), dia,
diff --git a/tryton/gui/window/view_form/view/list.py b/tryton/gui/window/view_form/view/list.py
index 554eda4..9c6bd04 100644
--- a/tryton/gui/window/view_form/view/list.py
+++ b/tryton/gui/window/view_form/view/list.py
@@ -541,7 +541,7 @@ class ViewTree(View):
                 column.arrow.hide()
         model = self.treeview.get_model()
         unsaved_records = [x for x in model.group if x.id < 0]
-        search_string = self.screen.screen_container.get_text() or None
+        search_string = self.screen.screen_container.get_text() or u''
         if (self.screen.search_count == len(model)
                 or unsaved_records
                 or self.screen.parent):
diff --git a/tryton/gui/window/view_form/view/list_gtk/widget.py b/tryton/gui/window/view_form/view/list_gtk/widget.py
index 4067f10..ef4a949 100644
--- a/tryton/gui/window/view_form/view/list_gtk/widget.py
+++ b/tryton/gui/window/view_form/view/list_gtk/widget.py
@@ -809,6 +809,7 @@ class ProgressBar(object):
 
     def __init__(self, view, attrs):
         super(ProgressBar, self).__init__()
+        self.view = view
         self.attrs = attrs
         self.renderer = gtk.CellRendererProgress()
         orientation = self.orientations.get(self.attrs.get('orientation',
diff --git a/tryton/gui/window/win_import.py b/tryton/gui/window/win_import.py
index ede68c7..7f8284b 100644
--- a/tryton/gui/window/win_import.py
+++ b/tryton/gui/window/win_import.py
@@ -238,6 +238,9 @@ class WinImport(NoModal):
 
     def on_row_expanded(self, treeview, iter, path):
         child = self.model1.iter_children(iter)
+        # autodetect could call for node without children
+        if child is None:
+            return
         if self.model1.get_value(child, 0) is None:
             prefix_field = self.model1.get_value(iter, 1)
             name, model = self.fields[prefix_field]
diff --git a/tryton/version.py b/tryton/version.py
index a83fcfa..dcd5113 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.4.1"
+VERSION = "3.4.2"
 LICENSE = "GPL-3"
 WEBSITE = "http://www.tryton.org/"
-- 
tryton-client



More information about the tryton-debian-vcs mailing list