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 =======