Hello community,
here is the log from the commit of package trytond for openSUSE:Factory checked in at 2019-06-01 09:48:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trytond (Old)
and /work/SRC/openSUSE:Factory/.trytond.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trytond"
Sat Jun 1 09:48:04 2019 rev:31 rq:705909 version:4.6.15
Changes:
--------
--- /work/SRC/openSUSE:Factory/trytond/trytond.changes 2019-02-24 17:18:08.996421165 +0100
+++ /work/SRC/openSUSE:Factory/.trytond.new.5148/trytond.changes 2019-06-01 09:48:07.131352573 +0200
@@ -1,0 +2,5 @@
+Fri May 17 10:31:11 UTC 2019 - Axel Braun
+
+- Version 4.6.15 - Bugfix Release
+
+-------------------------------------------------------------------
Old:
----
trytond-4.6.13.tar.gz
New:
----
trytond-4.6.15.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ trytond.spec ++++++
--- /var/tmp/diff_new_pack.ZDZP6I/_old 2019-06-01 09:48:07.903352309 +0200
+++ /var/tmp/diff_new_pack.ZDZP6I/_new 2019-06-01 09:48:07.907352308 +0200
@@ -20,7 +20,7 @@
%define majorver 4.6
%define base_name tryton
Name: trytond
-Version: %{majorver}.13
+Version: %{majorver}.15
Release: 0
Summary: An Enterprise Resource Planning (ERP) system
++++++ tryton-server.README.SUSE ++++++
--- /var/tmp/diff_new_pack.ZDZP6I/_old 2019-06-01 09:48:08.043352262 +0200
+++ /var/tmp/diff_new_pack.ZDZP6I/_new 2019-06-01 09:48:08.043352262 +0200
@@ -160,23 +160,9 @@
As result you will have a bare Tryton database with the base modules installed.
-See: http://doc.tryton.org/4.2/trytond/doc/topics/configuration.html
+See: http://doc.tryton.org/4.6/trytond/doc/topics/configuration.html
-Installation of the Webfrontend for tryton (sao) from package
--------------------------------------------------------------
-
-For most openSUSE Flavours tryton-sao is packed. You can install it with
- > zypper install tryton-sao
-
-You need to edit /etc/tryton/trytond.conf. Installation of tryton-sao follows the
-standards for nodejs-installations, so the path is within the node-modules:
-
-In the section [web], set the path:
- root = /usr/lib/node-modules/tryton-sao
-
-Now restart trytond.
-
Installation of the Webfrontend for tryton (sao) from source
------------------------------------------------------------
@@ -251,7 +237,7 @@
* Only the same major version of Tryton client and Tryton server can connect.
- -- Axel Braun MON Jun 11 10:27:14 UTC 2018
+ -- Axel Braun März 20, 2019, 19:20:02
This file is based on tryton-server.README.Debian
++++++ trytond-4.6.13.tar.gz -> trytond-4.6.15.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/.hgtags new/trytond-4.6.15/.hgtags
--- old/trytond-4.6.13/.hgtags 2019-02-19 21:36:25.000000000 +0100
+++ new/trytond-4.6.15/.hgtags 2019-04-22 10:24:20.000000000 +0200
@@ -30,3 +30,5 @@
7a9cd116456e44ab424e84e8449281ee54f9d37c 4.6.11
2df97bd1d3af946c8a0af4c96a0661c2c1213e23 4.6.12
59030dbfa9eb91e5c62702d07aa364f73ad31f83 4.6.13
+91b7ec49a0ed1e1424bce8c34f367654588037d0 4.6.14
+aa0e0a0ce2e1e00da1fbbd840f5aa9f571caced5 4.6.15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/CHANGELOG new/trytond-4.6.15/CHANGELOG
--- old/trytond-4.6.13/CHANGELOG 2019-02-19 21:36:25.000000000 +0100
+++ new/trytond-4.6.15/CHANGELOG 2019-04-22 10:24:20.000000000 +0200
@@ -1,3 +1,11 @@
+Version 4.6.15 - 2019-04-22
+* Bug fixes (see mercurial logs for details)
+* Replace dsn by params to connect to postgresql
+
+Version 4.6.14 - 2019-04-02
+* Bug fixes (see mercurial logs for details)
+* Check read access on field in search order (issue8189)
+
Version 4.6.13 - 2019-02-19
* Bug fixes (see mercurial logs for details)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/PKG-INFO new/trytond-4.6.15/PKG-INFO
--- old/trytond-4.6.13/PKG-INFO 2019-02-19 21:36:26.000000000 +0100
+++ new/trytond-4.6.15/PKG-INFO 2019-04-22 10:24:21.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: trytond
-Version: 4.6.13
+Version: 4.6.15
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: Tryton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/doc/ref/models/models.rst new/trytond-4.6.15/doc/ref/models/models.rst
--- old/trytond-4.6.13/doc/ref/models/models.rst 2018-08-20 22:55:19.000000000 +0200
+++ new/trytond-4.6.15/doc/ref/models/models.rst 2019-03-28 19:53:23.000000000 +0100
@@ -322,8 +322,7 @@
Create records for all values in ``datas``.
The field names of values must be defined in ``fields_names``.
- It returns a tuple containing: the number of records imported, the last values
- if failed, the exception if failed and the warning if failed.
+ It returns the number of imported records.
.. classmethod:: ModelStorage.check_xml_record(records, values)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/doc/ref/rpc.rst new/trytond-4.6.15/doc/ref/rpc.rst
--- old/trytond-4.6.13/doc/ref/rpc.rst 2018-08-20 22:55:11.000000000 +0200
+++ new/trytond-4.6.15/doc/ref/rpc.rst 2019-04-10 19:11:49.000000000 +0200
@@ -7,7 +7,7 @@
.. class:: RPC([readonly[, instantiate[, result[, check_access[, unique]]]]])
-RPC is an object to define the behavior of Remote Procedur Call.
+RPC is an object to define the behavior of Remote Procedure Call.
Instance attributes are:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/trytond/__init__.py new/trytond-4.6.15/trytond/__init__.py
--- old/trytond-4.6.13/trytond/__init__.py 2019-01-22 22:15:51.000000000 +0100
+++ new/trytond-4.6.15/trytond/__init__.py 2019-04-02 21:34:23.000000000 +0200
@@ -5,7 +5,7 @@
import warnings
from email import charset
-__version__ = "4.6.13"
+__version__ = "4.6.15"
os.environ['TZ'] = 'UTC'
if hasattr(time, 'tzset'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/trytond/backend/postgresql/database.py new/trytond-4.6.15/trytond/backend/postgresql/database.py
--- old/trytond-4.6.13/trytond/backend/postgresql/database.py 2018-08-20 22:55:19.000000000 +0200
+++ new/trytond-4.6.15/trytond/backend/postgresql/database.py 2019-04-16 22:25:48.000000000 +0200
@@ -92,22 +92,27 @@
minconn = config.getint('database', 'minconn', default=1)
maxconn = config.getint('database', 'maxconn', default=64)
inst._connpool = ThreadedConnectionPool(
- minconn, maxconn, cls.dsn(name),
- cursor_factory=LoggingCursor)
-
+ minconn, maxconn,
+ cursor_factory=LoggingCursor,
+ **cls._connection_params(name))
cls._databases[name] = inst
return inst
@classmethod
- def dsn(cls, name):
+ def _connection_params(cls, name):
uri = parse_uri(config.get('database', 'uri'))
- host = uri.hostname and "host=%s" % uri.hostname or ''
- port = uri.port and "port=%s" % uri.port or ''
- name = "dbname=%s" % name
- user = uri.username and "user=%s" % uri.username or ''
- password = ("password=%s" % urllib.unquote_plus(uri.password)
- if uri.password else '')
- return '%s %s %s %s %s' % (host, port, name, user, password)
+ params = {
+ 'dbname': name,
+ }
+ if uri.username:
+ params['user'] = uri.username
+ if uri.password:
+ params['password'] = urllib.unquote_plus(uri.password)
+ if uri.hostname:
+ params['host'] = uri.hostname
+ if uri.port:
+ params['port'] = uri.port
+ return params
def connect(self):
return self
@@ -178,7 +183,8 @@
res = []
for db_name, in cursor:
try:
- with connect(self.dsn(db_name)) as conn:
+ with connect(**self._connection_params(db_name)
+ ) as conn:
if self._test(conn):
res.append(db_name)
except Exception:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/trytond/model/modelstorage.py new/trytond-4.6.15/trytond/model/modelstorage.py
--- old/trytond-4.6.13/trytond/model/modelstorage.py 2018-11-12 17:58:19.000000000 +0100
+++ new/trytond-4.6.15/trytond/model/modelstorage.py 2019-04-02 21:33:46.000000000 +0200
@@ -383,7 +383,7 @@
ModelAccess.check(cls.__name__, 'read')
- def check(domain, cls, to_check):
+ def check_domain(domain, cls, to_check):
if is_leaf(domain):
local, relate = (domain[0].split('.', 1) + [None])[:2]
to_check[cls.__name__].add(local)
@@ -393,16 +393,29 @@
else:
target = cls._fields[local].get_target()
target_domain = [(relate,) + tuple(domain[1:])]
- check(target_domain, target, to_check)
+ check_domain(target_domain, target, to_check)
elif not domain:
return
else:
i = 1 if domain[0] in ['OR', 'AND'] else 0
for d in domain[i:]:
- check(d, cls, to_check)
+ check_domain(d, cls, to_check)
+
+ def check_order(order, cls, to_check):
+ if not order:
+ return
+ for oexpr, otype in order:
+ local, _, relate = oexpr.partition('.')
+ to_check[cls.__name__].add(local)
+ if relate:
+ target = cls._fields[local].get_target()
+ target_order = [(relate, otype)]
+ check_order(target_order, target, to_check)
+
if transaction.user and transaction.context.get('_check_access'):
to_check = defaultdict(set)
- check(domain, cls, to_check)
+ check_domain(domain, cls, to_check)
+ check_order(order, cls, to_check)
for name, fields_names in to_check.items():
ModelAccess.check(name, 'read')
ModelFieldAccess.check(name, fields_names, 'read')
@@ -670,11 +683,10 @@
return res
@memoize(1000)
- def get_by_id(value, field):
+ def get_by_id(value, field, ftype):
if not value:
return None
relation = None
- ftype = fields_def[field[-1][:-3]]['type']
if ftype == 'many2many':
value = csv.reader(value.splitlines(), delimiter=',',
quoting=csv.QUOTE_NONE, escapechar='\\').next()
@@ -717,7 +729,8 @@
is_prefix_len = (len(field) == (prefix_len + 1))
value = line[i]
if is_prefix_len and field[-1].endswith(':id'):
- row[field[0][:-3]] = get_by_id(value, field)
+ ftype = fields_def[field[-1][:-3]]['type']
+ row[field[0][:-3]] = get_by_id(value, field, ftype)
elif is_prefix_len and ':lang=' in field[-1]:
field_name, lang = field[-1].split(':lang=')
translate.setdefault(lang, {})[field_name] = value or False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/trytond/model/modelview.py new/trytond-4.6.15/trytond/model/modelview.py
--- old/trytond-4.6.13/trytond/model/modelview.py 2018-08-20 22:55:19.000000000 +0200
+++ new/trytond-4.6.15/trytond/model/modelview.py 2019-03-28 19:53:23.000000000 +0100
@@ -238,7 +238,6 @@
if view.inherit:
inherit_view_id = view.id
view = view.inherit
- view_id = view.id
# if a view was found
if view:
@@ -250,17 +249,18 @@
# Check if view is not from an inherited model
if view.model != cls.__name__:
Inherit = pool.get(view.model)
- result['arch'] = Inherit.fields_view_get(
- result['view_id'])['arch']
- view_id = inherit_view_id
+ result['arch'] = Inherit.fields_view_get(view.id)['arch']
+ real_view_id = inherit_view_id
+ else:
+ real_view_id = view.id
# get all views which inherit from (ie modify) this view
views = View.search([
'OR', [
- ('inherit', '=', view_id),
+ ('inherit', '=', real_view_id),
('model', '=', cls.__name__),
], [
- ('id', '=', view_id),
+ ('id', '=', real_view_id),
('inherit', '!=', None),
],
])
@@ -320,7 +320,7 @@
result['type'] = view_type
result['arch'] = xml
result['field_childs'] = None
- result['view_id'] = 0
+ result['view_id'] = view_id
# Update arch and compute fields from arch
parser = etree.XMLParser(remove_blank_text=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.6.13/trytond.egg-info/PKG-INFO new/trytond-4.6.15/trytond.egg-info/PKG-INFO
--- old/trytond-4.6.13/trytond.egg-info/PKG-INFO 2019-02-19 21:36:26.000000000 +0100
+++ new/trytond-4.6.15/trytond.egg-info/PKG-INFO 2019-04-22 10:24:21.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: trytond
-Version: 4.6.13
+Version: 4.6.15
Summary: Tryton server
Home-page: http://www.tryton.org/
Author: Tryton