Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package trytond for openSUSE:Factory checked 
in at 2023-11-13 22:21:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trytond (Old)
 and      /work/SRC/openSUSE:Factory/.trytond.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "trytond"

Mon Nov 13 22:21:19 2023 rev:88 rq:1125404 version:6.0.37

Changes:
--------
--- /work/SRC/openSUSE:Factory/trytond/trytond.changes  2023-10-19 
22:52:33.877846349 +0200
+++ /work/SRC/openSUSE:Factory/.trytond.new.17445/trytond.changes       
2023-11-13 22:24:57.748541612 +0100
@@ -1,0 +2,5 @@
+Sat Nov  4 10:13:25 UTC 2023 - Axel Braun <axel.br...@gmx.de>
+
+- Version 6.0.37 - Bugfix Release
+
+-------------------------------------------------------------------

Old:
----
  trytond-6.0.36.tar.gz
  trytond-6.0.36.tar.gz.asc

New:
----
  trytond-6.0.37.tar.gz
  trytond-6.0.37.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ trytond.spec ++++++
--- /var/tmp/diff_new_pack.JNovMi/_old  2023-11-13 22:24:59.040589183 +0100
+++ /var/tmp/diff_new_pack.JNovMi/_new  2023-11-13 22:24:59.056589773 +0100
@@ -20,7 +20,7 @@
 %define majorver 6.0
 %define base_name tryton
 Name:           trytond
-Version:        %{majorver}.36
+Version:        %{majorver}.37
 Release:        0
 Summary:        An Enterprise Resource Planning (ERP) system
 License:        GPL-3.0-or-later

++++++ trytond-6.0.36.tar.gz -> trytond-6.0.37.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/CHANGELOG new/trytond-6.0.37/CHANGELOG
--- old/trytond-6.0.36/CHANGELOG        2023-10-04 23:56:28.000000000 +0200
+++ new/trytond-6.0.37/CHANGELOG        2023-11-03 17:46:35.000000000 +0100
@@ -1,4 +1,9 @@
 
+Version 6.0.37 - 2023-11-03
+---------------------------
+* Bug fixes (see mercurial logs for details)
+
+
 Version 6.0.36 - 2023-10-04
 ---------------------------
 * Bug fixes (see mercurial logs for details)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/COPYRIGHT new/trytond-6.0.37/COPYRIGHT
--- old/trytond-6.0.36/COPYRIGHT        2023-10-04 23:56:27.000000000 +0200
+++ new/trytond-6.0.37/COPYRIGHT        2023-11-03 17:46:35.000000000 +0100
@@ -4,8 +4,8 @@
 Copyright (C) 2008-2023 B2CK SPRL.
 Copyright (C) 2011 Openlabs Technologies & Consulting (P) Ltd.
 Copyright (C) 2011-2023 Nicolas Évrard.
-Copyright (C) 2020-2021 Maxime Richez
-Copyright (C) 2020-2021 SALUC SA
+Copyright (C) 2020-2023 Maxime Richez
+Copyright (C) 2020-2023 SALUC SA
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/PKG-INFO new/trytond-6.0.37/PKG-INFO
--- old/trytond-6.0.36/PKG-INFO 2023-10-04 23:56:32.492988000 +0200
+++ new/trytond-6.0.37/PKG-INFO 2023-11-03 17:46:38.357915000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: trytond
-Version: 6.0.36
+Version: 6.0.37
 Summary: Tryton server
 Home-page: http://www.tryton.org/
 Download-URL: http://downloads.tryton.org/6.0/
@@ -49,15 +49,33 @@
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Software Development :: Libraries :: Application 
Frameworks
 Requires-Python: >=3.6
-Provides-Extra: PostgreSQL
+License-File: LICENSE
+Requires-Dist: defusedxml
+Requires-Dist: lxml>=2.0
+Requires-Dist: relatorio[fodt]>=0.7.0
+Requires-Dist: Genshi
+Requires-Dist: python-dateutil
+Requires-Dist: polib
+Requires-Dist: python-sql>=0.5
+Requires-Dist: werkzeug>=0.12
+Requires-Dist: wrapt
+Requires-Dist: passlib>=1.7.0
+Provides-Extra: postgresql
+Requires-Dist: psycopg2>=2.7.0; extra == "postgresql"
 Provides-Extra: graphviz
-Provides-Extra: Levenshtein
-Provides-Extra: BCrypt
+Requires-Dist: pydot; extra == "graphviz"
+Provides-Extra: levenshtein
+Requires-Dist: python-Levenshtein; extra == "levenshtein"
+Provides-Extra: bcrypt
+Requires-Dist: passlib[bcrypt]; extra == "bcrypt"
 Provides-Extra: html2text
+Requires-Dist: html2text; extra == "html2text"
 Provides-Extra: weasyprint
+Requires-Dist: weasyprint; extra == "weasyprint"
 Provides-Extra: coroutine
+Requires-Dist: gevent>=1.1; extra == "coroutine"
 Provides-Extra: image
-License-File: LICENSE
+Requires-Dist: pillow; extra == "image"
 
 trytond
 =======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/__init__.py 
new/trytond-6.0.37/trytond/__init__.py
--- old/trytond-6.0.36/trytond/__init__.py      2023-09-06 22:58:56.000000000 
+0200
+++ new/trytond-6.0.37/trytond/__init__.py      2023-10-04 23:56:45.000000000 
+0200
@@ -7,7 +7,7 @@
 
 from lxml import etree, objectify
 
-__version__ = "6.0.36"
+__version__ = "6.0.37"
 
 os.environ['TZ'] = 'UTC'
 if hasattr(time, 'tzset'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/backend/sqlite/database.py 
new/trytond-6.0.37/trytond/backend/sqlite/database.py
--- old/trytond-6.0.36/trytond/backend/sqlite/database.py       2023-05-17 
23:03:30.000000000 +0200
+++ new/trytond-6.0.37/trytond/backend/sqlite/database.py       2023-10-24 
00:08:44.000000000 +0200
@@ -84,6 +84,8 @@
 def date_trunc(_type, date):
     if not _type:
         return date
+    if date is None:
+        return None
     for format_ in [
             '%Y-%m-%d %H:%M:%S.%f',
             '%Y-%m-%d %H:%M:%S',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/ir/email_.py 
new/trytond-6.0.37/trytond/ir/email_.py
--- old/trytond-6.0.36/trytond/ir/email_.py     2023-05-17 23:03:30.000000000 
+0200
+++ new/trytond-6.0.37/trytond/ir/email_.py     2023-10-24 00:05:34.000000000 
+0200
@@ -191,12 +191,13 @@
             body=body,
             resource=record)
         email.save()
-        with Transaction().set_context(_check_access=False):
-            attachments_ = []
-            for name, data in files:
-                attachments_.append(
-                    Attachment(resource=email, name=name, data=data))
-            Attachment.save(attachments_)
+        if files:
+            with Transaction().set_context(_check_access=False):
+                attachments_ = []
+                for name, data in files:
+                    attachments_.append(
+                        Attachment(resource=email, name=name, data=data))
+                Attachment.save(attachments_)
         return email
 
     @classmethod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/model/fields/dict.py 
new/trytond-6.0.37/trytond/model/fields/dict.py
--- old/trytond-6.0.36/trytond/model/fields/dict.py     2023-08-19 
11:58:20.000000000 +0200
+++ new/trytond-6.0.37/trytond/model/fields/dict.py     2023-10-18 
16:20:58.000000000 +0200
@@ -71,7 +71,7 @@
             for k, v in value.items():
                 if v is None:
                     continue
-                if isinstance(v, list):
+                if self.schema_model and isinstance(v, (list, tuple)):
                     v = list(sorted(set(v)))
                 d[k] = v
             value = dumps(d)
@@ -106,7 +106,7 @@
             value = int(value)
         if isinstance(value, (Select, CombiningQuery)):
             return value
-        if isinstance(value, (list, tuple)):
+        if self.schema_model and isinstance(value, (list, tuple)):
             value = sorted(set(value))
         if operator.endswith('in'):
             return [dumps(v) for v in value]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/model/fields/reference.py 
new/trytond-6.0.37/trytond/model/fields/reference.py
--- old/trytond-6.0.36/trytond/model/fields/reference.py        2023-05-17 
23:03:30.000000000 +0200
+++ new/trytond-6.0.37/trytond/model/fields/reference.py        2023-10-18 
16:20:58.000000000 +0200
@@ -48,7 +48,10 @@
             select=select, on_change=on_change, on_change_with=on_change_with,
             depends=depends, context=context, loading=loading)
         self.datetime_field = datetime_field
-        self.selection = selection or None
+        if hasattr(selection, 'copy'):
+            self.selection = selection.copy()
+        else:
+            self.selection = selection
         self.selection_change_with = set()
         if selection_change_with:
             warnings.warn('selection_change_with argument is deprecated, '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/model/modelstorage.py 
new/trytond-6.0.37/trytond/model/modelstorage.py
--- old/trytond-6.0.36/trytond/model/modelstorage.py    2023-09-12 
22:20:02.000000000 +0200
+++ new/trytond-6.0.37/trytond/model/modelstorage.py    2023-10-30 
15:15:51.000000000 +0100
@@ -1307,13 +1307,10 @@
                             or not digits
                             or any(d is None for d in digits)):
                         return
-                    if isinstance(value, Decimal):
-                        exp = Decimal('.'.join(['0', '0' * digits[1]]))
-                        if value.quantize(exp) != value:
-                            raise_error(value)
-                    else:
-                        if not (round(value, digits[1]) == float(value)):
-                            raise_error(value)
+                    if (round(value, digits[1]) != value
+                            or (isinstance(value, Decimal)
+                                and value.as_tuple().exponent < -digits[1])):
+                        raise_error(value)
                 # validate digits
                 if getattr(field, 'digits', None):
                     if is_pyson(field.digits):
@@ -1667,7 +1664,8 @@
                 read_data = self.read(list(index.keys()), list(ffields.keys()))
                 read_data.sort(key=lambda r: index[r['id']])
             # create browse records for 'remote' models
-            no_local_cache = {'one2one', 'one2many', 'many2many', 'binary'}
+            no_local_cache = {
+                'one2one', 'one2many', 'many2many', 'binary', 'reference'}
             for data in read_data:
                 id_ = data['id']
                 to_delete = set()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/model/modelview.py 
new/trytond-6.0.37/trytond/model/modelview.py
--- old/trytond-6.0.36/trytond/model/modelview.py       2023-09-12 
22:40:45.000000000 +0200
+++ new/trytond-6.0.37/trytond/model/modelview.py       2023-10-24 
00:14:46.000000000 +0200
@@ -540,7 +540,7 @@
                 field = cls._fields[field_name]
             else:
                 continue
-            for depend in field.depends:
+            for depend in (set(field.depends) - fields_to_remove):
                 if depend not in fields_def:
                     fields_def[depend] = {'name': depend}
                     field_names.append(depend)
@@ -858,7 +858,8 @@
                 continue
             if field._type in ('many2one', 'one2one', 'reference'):
                 if value:
-                    if isinstance(value, ModelStorage):
+                    if (isinstance(value, ModelStorage)
+                            and value.id and value.id >= 0):
                         changed['%s.' % fname] = {
                             'rec_name': value.rec_name,
                             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/tests/test_field_numeric.py 
new/trytond-6.0.37/trytond/tests/test_field_numeric.py
--- old/trytond-6.0.36/trytond/tests/test_field_numeric.py      2023-05-17 
23:03:30.000000000 +0200
+++ new/trytond-6.0.37/trytond/tests/test_field_numeric.py      2023-10-30 
15:15:51.000000000 +0100
@@ -158,6 +158,17 @@
                         }])
 
     @with_transaction()
+    def test_create_trailing_zero_digits_invalid(self):
+        "Test create numeric with invalid trailing zero digits"
+        Numeric = Pool().get('test.numeric_digits')
+
+        with self.assertRaises(DigitsValidationError):
+            Numeric.create([{
+                    'digits': 1,
+                    'numeric': Decimal('1.10'),
+                    }])
+
+    @with_transaction()
     def test_search_equals(self):
         "Test search numeric equals"
         Numeric = Pool().get('test.numeric')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond/tests/test_transaction.py 
new/trytond-6.0.37/trytond/tests/test_transaction.py
--- old/trytond-6.0.36/trytond/tests/test_transaction.py        2023-05-17 
23:03:30.000000000 +0200
+++ new/trytond-6.0.37/trytond/tests/test_transaction.py        2023-10-30 
14:12:36.000000000 +0100
@@ -87,7 +87,7 @@
         dm.tpc_begin.assert_called_once_with(transaction)
         dm.commit.assert_called_once_with(transaction)
         dm.tpc_vote.assert_called_once_with(transaction)
-        dm.tpc_abort.not_called()
+        dm.tpc_abort.assert_not_called()
         dm.tpc_finish.assert_called_once_with(transaction)
 
         # Failing in the datamanager
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.36/trytond.egg-info/PKG-INFO 
new/trytond-6.0.37/trytond.egg-info/PKG-INFO
--- old/trytond-6.0.36/trytond.egg-info/PKG-INFO        2023-10-04 
23:56:31.000000000 +0200
+++ new/trytond-6.0.37/trytond.egg-info/PKG-INFO        2023-11-03 
17:46:37.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: trytond
-Version: 6.0.36
+Version: 6.0.37
 Summary: Tryton server
 Home-page: http://www.tryton.org/
 Download-URL: http://downloads.tryton.org/6.0/
@@ -49,15 +49,33 @@
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Software Development :: Libraries :: Application 
Frameworks
 Requires-Python: >=3.6
-Provides-Extra: PostgreSQL
+License-File: LICENSE
+Requires-Dist: defusedxml
+Requires-Dist: lxml>=2.0
+Requires-Dist: relatorio[fodt]>=0.7.0
+Requires-Dist: Genshi
+Requires-Dist: python-dateutil
+Requires-Dist: polib
+Requires-Dist: python-sql>=0.5
+Requires-Dist: werkzeug>=0.12
+Requires-Dist: wrapt
+Requires-Dist: passlib>=1.7.0
+Provides-Extra: postgresql
+Requires-Dist: psycopg2>=2.7.0; extra == "postgresql"
 Provides-Extra: graphviz
-Provides-Extra: Levenshtein
-Provides-Extra: BCrypt
+Requires-Dist: pydot; extra == "graphviz"
+Provides-Extra: levenshtein
+Requires-Dist: python-Levenshtein; extra == "levenshtein"
+Provides-Extra: bcrypt
+Requires-Dist: passlib[bcrypt]; extra == "bcrypt"
 Provides-Extra: html2text
+Requires-Dist: html2text; extra == "html2text"
 Provides-Extra: weasyprint
+Requires-Dist: weasyprint; extra == "weasyprint"
 Provides-Extra: coroutine
+Requires-Dist: gevent>=1.1; extra == "coroutine"
 Provides-Extra: image
-License-File: LICENSE
+Requires-Dist: pillow; extra == "image"
 
 trytond
 =======

Reply via email to