Hello community,

here is the log from the commit of package trytond for openSUSE:Factory checked 
in at 2020-06-12 21:40:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trytond (Old)
 and      /work/SRC/openSUSE:Factory/.trytond.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "trytond"

Fri Jun 12 21:40:13 2020 rev:44 rq:813783 version:5.0.23

Changes:
--------
--- /work/SRC/openSUSE:Factory/trytond/trytond.changes  2020-03-11 
18:50:30.439545061 +0100
+++ /work/SRC/openSUSE:Factory/.trytond.new.3606/trytond.changes        
2020-06-12 21:41:36.868053314 +0200
@@ -1,0 +2,5 @@
+Tue Jun  9 19:55:24 UTC 2020 - Axel Braun <[email protected]>
+
+- Version 5.0.23 - Bugfix Release
+
+-------------------------------------------------------------------

Old:
----
  trytond-5.0.19.tar.gz

New:
----
  _service
  trytond-5.0.23.tar.gz

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

Other differences:
------------------
++++++ trytond.spec ++++++
--- /var/tmp/diff_new_pack.IpE6xi/_old  2020-06-12 21:41:38.604058275 +0200
+++ /var/tmp/diff_new_pack.IpE6xi/_new  2020-06-12 21:41:38.604058275 +0200
@@ -20,7 +20,7 @@
 %define majorver 5.0
 %define base_name tryton
 Name:           trytond
-Version:        %{majorver}.19
+Version:        %{majorver}.23
 Release:        0
 Summary:        An Enterprise Resource Planning (ERP) system
 License:        GPL-3.0-or-later

++++++ _service ++++++
<services>
  
<service name="download_files" mode="localonly" />
</services>
++++++ trytond-5.0.19.tar.gz -> trytond-5.0.23.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/.hgtags new/trytond-5.0.23/.hgtags
--- old/trytond-5.0.19/.hgtags  2020-03-09 18:30:07.000000000 +0100
+++ new/trytond-5.0.23/.hgtags  2020-05-18 22:47:53.000000000 +0200
@@ -38,3 +38,7 @@
 45b6add00a6f037d2a2987050959f0148c3ab5cb 5.0.17
 d5ceda2dfd6a678e19bd88ef072a4b7a118834b5 5.0.18
 643da5238d7f275e8ecf667b5c05897222acaa24 5.0.19
+1b12b20533d43231680427be375fd9bf5dc8b432 5.0.20
+95ef70d1e73fb3aaceb57c28fbefe5be0fa578b5 5.0.21
+d676f08167788f1da30fa57b4eecdca7b491fb49 5.0.22
+b48137b41f5094dd1c8e00fed36e495b6be79d23 5.0.23
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/CHANGELOG new/trytond-5.0.23/CHANGELOG
--- old/trytond-5.0.19/CHANGELOG        2020-03-09 18:30:07.000000000 +0100
+++ new/trytond-5.0.23/CHANGELOG        2020-05-18 22:47:52.000000000 +0200
@@ -1,3 +1,15 @@
+Version 5.0.23 - 2020-05-18
+* Bug fixes (see mercurial logs for details)
+
+Version 5.0.22 - 2020-05-15
+* Bug fixes (see mercurial logs for details)
+
+Version 5.0.21 - 2020-05-01
+* Bug fixes (see mercurial logs for details)
+
+Version 5.0.20 - 2020-04-04
+* Bug fixes (see mercurial logs for details)
+
 Version 5.0.19 - 2020-03-09
 * Bug fixes (see mercurial logs for details)
 * Enable check_access context when checking wizard access (issue9108)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/COPYRIGHT new/trytond-5.0.23/COPYRIGHT
--- old/trytond-5.0.19/COPYRIGHT        2020-03-09 18:30:06.000000000 +0100
+++ new/trytond-5.0.23/COPYRIGHT        2020-05-18 22:47:52.000000000 +0200
@@ -3,7 +3,7 @@
 Copyright (C) 2007-2013 Bertrand Chenal.
 Copyright (C) 2008-2020 B2CK SPRL.
 Copyright (C) 2011 Openlabs Technologies & Consulting (P) Ltd.
-Copyright (C) 2011-2019 Nicolas Évrard.
+Copyright (C) 2011-2020 Nicolas Évrard.
 
 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-5.0.19/PKG-INFO new/trytond-5.0.23/PKG-INFO
--- old/trytond-5.0.19/PKG-INFO 2020-03-09 18:30:09.000000000 +0100
+++ new/trytond-5.0.23/PKG-INFO 2020-05-18 22:47:54.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: trytond
-Version: 5.0.19
+Version: 5.0.23
 Summary: Tryton server
 Home-page: http://www.tryton.org/
 Author: Tryton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/__init__.py 
new/trytond-5.0.23/trytond/__init__.py
--- old/trytond-5.0.19/trytond/__init__.py      2020-02-02 16:57:12.000000000 
+0100
+++ new/trytond-5.0.23/trytond/__init__.py      2020-05-15 21:42:44.000000000 
+0200
@@ -5,7 +5,7 @@
 import warnings
 from email import charset
 
-__version__ = "5.0.19"
+__version__ = "5.0.23"
 
 os.environ['TZ'] = 'UTC'
 if hasattr(time, 'tzset'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/ir/action.py 
new/trytond-5.0.23/trytond/ir/action.py
--- old/trytond-5.0.19/trytond/ir/action.py     2019-11-15 22:34:30.000000000 
+0100
+++ new/trytond-5.0.23/trytond/ir/action.py     2020-04-25 12:52:59.000000000 
+0200
@@ -625,6 +625,7 @@
         for report in reports:
             if report.report:
                 default['report_content'] = None
+                default['report'] = None
             default['report_name'] = report.report_name
             new_reports.extend(super(ActionReport, cls).copy([report],
                     default=default))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/ir/note.py 
new/trytond-5.0.23/trytond/ir/note.py
--- old/trytond-5.0.19/trytond/ir/note.py       2018-11-12 17:28:05.000000000 
+0100
+++ new/trytond-5.0.23/trytond/ir/note.py       2020-04-25 12:52:59.000000000 
+0200
@@ -100,11 +100,13 @@
     @classmethod
     def write(cls, notes, values, *args):
         # Avoid changing write meta data if only unread is set
-        if args or values.keys() != ['unread']:
+        if args or set(values.keys()) != {'unread'}:
             super(Note, cls).write(notes, values, *args)
         else:
             # Check access write and clean cache
-            ModelStorage.write(notes, values)
+            # Use __func__ to directly access ModelStorage's write method and
+            # pass it the right class
+            ModelStorage.write.__func__(cls, notes, values)
             cls.set_unread(notes, 'unread', values['unread'])
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/ir/queue.py 
new/trytond-5.0.23/trytond/ir/queue.py
--- old/trytond-5.0.19/trytond/ir/queue.py      2019-08-11 19:34:43.000000000 
+0200
+++ new/trytond-5.0.23/trytond/ir/queue.py      2020-03-26 23:39:20.000000000 
+0100
@@ -103,7 +103,7 @@
                     candidates.expected_at.nulls_first],
                 limit=1))
         next_timeout = With('seconds', query=candidates.select(
-                Min(Extract('second',
+                Min(Extract('EPOCH',
                         candidates.scheduled_at - CurrentTimestamp())
                     ),
                 where=candidates.scheduled_at >= CurrentTimestamp()))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/model/modelstorage.py 
new/trytond-5.0.23/trytond/model/modelstorage.py
--- old/trytond-5.0.19/trytond/model/modelstorage.py    2020-02-16 
16:54:09.000000000 +0100
+++ new/trytond-5.0.23/trytond/model/modelstorage.py    2020-04-17 
14:50:06.000000000 +0200
@@ -1335,11 +1335,13 @@
             ifields = islice(ifields, 0, threshold)
             ffields.update(ifields)
 
+        require_context_field = False
         # add datetime_field
         for field in list(ffields.values()):
             if hasattr(field, 'datetime_field') and field.datetime_field:
                 datetime_field = self._fields[field.datetime_field]
                 ffields[field.datetime_field] = datetime_field
+                require_context_field = True
 
         # add depends of field with context
         for field in list(ffields.values()):
@@ -1349,12 +1351,14 @@
                     if context_field_name not in field.depends:
                         continue
                     context_field = self._fields.get(context_field_name)
+                    require_context_field = True
                     if context_field not in ffields:
                         ffields[context_field_name] = context_field
 
         def filter_(id_):
-            return (name not in self._cache.get(id_, {})
-                and name not in self._local_cache.get(id_, {}))
+            return (id_ == self.id  # Ensure the value is read
+                or (name not in self._cache.get(id_, {})
+                    and name not in self._local_cache.get(id_, {})))
 
         def unique(ids):
             s = set()
@@ -1422,7 +1426,8 @@
                 self._transaction.set_user(self._user), \
                 self._transaction.reset_context(), \
                 self._transaction.set_context(self._context):
-            if self.id in self._cache and name in self._cache[self.id]:
+            if (self.id in self._cache and name in self._cache[self.id]
+                    and not require_context_field):
                 # Use values from cache
                 ids = islice(chain(islice(self._ids, index, None),
                         islice(self._ids, 0, max(index - 1, 0))),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/report/report.py 
new/trytond-5.0.23/trytond/report/report.py
--- old/trytond-5.0.19/trytond/report/report.py 2019-12-10 00:27:01.000000000 
+0100
+++ new/trytond-5.0.23/trytond/report/report.py 2020-04-17 14:50:06.000000000 
+0200
@@ -2,6 +2,7 @@
 # this repository contains the full copyright notices and license terms.
 import datetime
 import os
+import inspect
 import logging
 import subprocess
 import tempfile
@@ -363,7 +364,7 @@
     pool = Pool()
     ActionReport = pool.get('ir.action.report')
     report_id = None
-    if isinstance(report, Report):
+    if inspect.isclass(report) and issubclass(report, Report):
         Report_ = report
     else:
         if isinstance(report, ActionReport):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/wizard/wizard.py 
new/trytond-5.0.23/trytond/wizard/wizard.py
--- old/trytond-5.0.19/trytond/wizard/wizard.py 2020-03-09 18:30:03.000000000 
+0100
+++ new/trytond-5.0.23/trytond/wizard/wizard.py 2020-04-29 16:41:34.000000000 
+0200
@@ -13,6 +13,7 @@
 from trytond.error import WarningErrorMixin
 from trytond.url import URLMixin
 from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder
+from trytond.model import ModelSQL
 from trytond.model.fields import states_validate
 from trytond.pyson import PYSONEncoder
 from trytond.rpc import RPC
@@ -229,7 +230,7 @@
 
         with Transaction().set_context(_check_access=True):
             model = context.get('active_model')
-            if model:
+            if model and model != 'ir.ui.menu':
                 ModelAccess.check(model, 'read')
             groups = set(User.get_groups())
             wizard_groups = ActionWizard.get_groups(cls.__name__,
@@ -238,8 +239,11 @@
                 if not groups & wizard_groups:
                     raise UserError('Calling wizard %s is not allowed!'
                         % cls.__name__)
-            elif model:
-                ModelAccess.check(model, 'write')
+            elif model and model != 'ir.ui.menu':
+                Model = pool.get(model)
+                if (not callable(getattr(Model, 'table_query', None))
+                        or Model.write.__func__ != ModelSQL.write.__func__):
+                    ModelAccess.check(model, 'write')
 
     @classmethod
     def create(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond/worker.py 
new/trytond-5.0.23/trytond/worker.py
--- old/trytond-5.0.19/trytond/worker.py        2019-08-11 19:34:43.000000000 
+0200
+++ new/trytond-5.0.23/trytond/worker.py        2020-05-16 22:06:29.000000000 
+0200
@@ -1,6 +1,8 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
+import datetime as dt
 import logging
+import random
 import select
 import signal
 import time
@@ -111,5 +113,16 @@
                         continue
                     raise
         logger.info('task "%d" done', task_id)
+    except DatabaseOperationalError:
+        try:
+            with Transaction().start(pool.database_name, 0) as transaction:
+                task = Queue(task_id)
+                scheduled_at = dt.datetime.now()
+                scheduled_at += dt.timedelta(
+                    seconds=random.randint(0, 2 ** retry))
+                Queue.push(task.name, task.data, scheduled_at=scheduled_at)
+        except Exception:
+            logger.critical(
+                'rescheduling task "%d" failed', task_id, exc_info=True)
     except Exception:
         logger.critical('task "%d" failed', task_id, exc_info=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-5.0.19/trytond.egg-info/PKG-INFO 
new/trytond-5.0.23/trytond.egg-info/PKG-INFO
--- old/trytond-5.0.19/trytond.egg-info/PKG-INFO        2020-03-09 
18:30:08.000000000 +0100
+++ new/trytond-5.0.23/trytond.egg-info/PKG-INFO        2020-05-18 
22:47:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: trytond
-Version: 5.0.19
+Version: 5.0.23
 Summary: Tryton server
 Home-page: http://www.tryton.org/
 Author: Tryton


Reply via email to