Hello community, here is the log from the commit of package trytond for openSUSE:Factory checked in at 2017-11-16 14:03:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/trytond (Old) and /work/SRC/openSUSE:Factory/.trytond.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trytond" Thu Nov 16 14:03:17 2017 rev:13 rq:542139 version:4.2.7 Changes: -------- --- /work/SRC/openSUSE:Factory/trytond/trytond.changes 2017-09-17 22:40:03.262097595 +0200 +++ /work/SRC/openSUSE:Factory/.trytond.new/trytond.changes 2017-11-16 14:03:19.156613738 +0100 @@ -1,0 +2,5 @@ +Thu Nov 9 06:05:31 UTC 2017 - [email protected] + +- Version 4.2.7 - Bugfix Release + +------------------------------------------------------------------- Old: ---- trytond-4.2.6.tar.gz New: ---- trytond-4.2.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ trytond.spec ++++++ --- /var/tmp/diff_new_pack.d0y8wI/_old 2017-11-16 14:03:20.904550390 +0100 +++ /var/tmp/diff_new_pack.d0y8wI/_new 2017-11-16 14:03:20.908550245 +0100 @@ -20,7 +20,7 @@ %define majorver 4.2 %define base_name tryton Name: trytond -Version: %{majorver}.6 +Version: %{majorver}.7 Release: 0 Summary: An Enterprise Resource Planning (ERP) system ++++++ tryton-server.README.SUSE ++++++ --- /var/tmp/diff_new_pack.d0y8wI/_old 2017-11-16 14:03:20.972547925 +0100 +++ /var/tmp/diff_new_pack.d0y8wI/_new 2017-11-16 14:03:20.972547925 +0100 @@ -185,7 +185,7 @@ tryton-sao into a directory, say /srv/tryton-sao Make sure you have nodejs and git installed: - > zypper install nodejs git + > zypper install nodejs git phantomjs Now change into to installation directory and install sao: > cd /srv/tryton-sao/package ++++++ trytond-4.2.6.tar.gz -> trytond-4.2.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/.drone.yml new/trytond-4.2.7/.drone.yml --- old/trytond-4.2.6/.drone.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/trytond-4.2.7/.drone.yml 2017-05-03 18:52:26.000000000 +0200 @@ -0,0 +1,9 @@ +image: python:all +env: + - POSTGRESQL_URI=postgresql://[email protected]:5432/ + - MYSQL_URI=mysql://[email protected]:3306/ +script: + - pip install tox + - tox -e "{py27,py33,py34,py35}-{sqlite,postgresql}" --skip-missing-interpreters +services: + - postgres diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/.hgtags new/trytond-4.2.7/.hgtags --- old/trytond-4.2.6/.hgtags 1970-01-01 01:00:00.000000000 +0100 +++ new/trytond-4.2.7/.hgtags 2017-11-07 16:53:29.000000000 +0100 @@ -0,0 +1,24 @@ +951bb3311b916cb893adc5294cfb3216d2940169 1.0.0 +9f5ce178a7c403a0865fd4b6c1a82a911df0e998 1.2.0 +e2d31d59de7745de70199b7c340d78b7c4775723 1.4.0 +64691214959ac19983f3b3d1dbb89ff693d1545c 1.6.0 +af3a6063b46bf8739a513a06400fbb9858b5869b 1.8.0 +3475040a8fe081b1b8609350186b779cc640fba4 2.0.0 +1df3f0702c621e65279af52d1f87725747ae8fa4 2.2.0 +640af4420c8eace7ee59a432bec54692f4808b20 2.4.0 +36530840a1d0dce354bbaa58ec849a409d306d83 2.6.0 +2893d6c3efd6df3759ab09a28ea16773a160118e 2.8.0 +759c6ff44b90b8c685e9d9a4124bcd85af204649 3.0.0 +b3d84aa2c3a6ed3b76bfb58a40fc687f68824c29 3.2.0 +f0a9fa755cde703be54efd747f376b096ea8316c 3.4.0 +1e4ba5a3f16e6afd59131b49841eb004e706619d 3.6.0 +0a29a9dba7f56fbdef067772eea3f037934999c9 3.8.0 +49a0caa894dae201ed4ec707f277d9859b5521fb 4.0.0 +eb8949ec5bcedba563b5799f1315a0cecfee61f6 4.2.0 +fc1bee0ae467f7798748f0616379560ff28d71a9 4.2.1 +768e108ff3df8d68dd8bfafd581cddeb388004e4 4.2.2 +abde22b56a2aed14ec1404c143c5a88a9ef66d11 4.2.3 +a2f94a337e2276d0ebc474b630db85d2676315cc 4.2.4 +ec6cf0cc82bce88cacc58949bd6a68225f2a312e 4.2.5 +52447cdf4482dce5bc76ea26b7b7fc5f82361644 4.2.6 +5f301276879f4fe742f998fa483c83126a8b3a4a 4.2.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/CHANGELOG new/trytond-4.2.7/CHANGELOG --- old/trytond-4.2.6/CHANGELOG 2017-08-08 18:17:35.000000000 +0200 +++ new/trytond-4.2.7/CHANGELOG 2017-11-07 16:53:29.000000000 +0100 @@ -1,3 +1,6 @@ +Version 4.2.7 - 2017-11-07 +* Bug fixes (see mercurial logs for details) + Version 4.2.6 - 2017-08-08 * Bug fixes (see mercurial logs for details) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/PKG-INFO new/trytond-4.2.7/PKG-INFO --- old/trytond-4.2.6/PKG-INFO 2017-08-08 18:17:37.000000000 +0200 +++ new/trytond-4.2.7/PKG-INFO 2017-11-07 16:53:30.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: trytond -Version: 4.2.6 +Version: 4.2.7 Summary: Tryton server Home-page: http://www.tryton.org/ Author: Tryton diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/tox.ini new/trytond-4.2.7/tox.ini --- old/trytond-4.2.6/tox.ini 1970-01-01 01:00:00.000000000 +0100 +++ new/trytond-4.2.7/tox.ini 2017-05-03 18:52:26.000000000 +0200 @@ -0,0 +1,19 @@ +[tox] +envlist = {py27,py33,py34,py35}-{sqlite,postgresql,mysql},pypy-{sqlite,postgresql} + +[testenv] +commands = {envpython} setup.py test +deps = + mock + {py27,py33,py34,py35}-postgresql: psycopg2 >= 2.5 + pypy-postgresql: psycopg2cffi >= 2.5 + mysql: MySQL-python + sqlite: sqlitebck +setenv = + sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://} + postgresql: TRYTOND_DATABASE_URI={env:POSTGRESQL_URI:postgresql://} + mysql: TRYTOND_DATABASE_URI={env:MYSQL_URI:mysql://} + sqlite: DB_NAME={env:SQLITE_NAME::memory:} + postgresql: DB_NAME={env:POSTGRESQL_NAME:test} + mysql: DB_NAME={env:MYSQL_NAME:test} +install_command = pip install --pre --find-links https://trydevpi.tryton.org/ {opts} {packages} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond/__init__.py new/trytond-4.2.7/trytond/__init__.py --- old/trytond-4.2.6/trytond/__init__.py 2017-07-01 23:37:13.000000000 +0200 +++ new/trytond-4.2.7/trytond/__init__.py 2017-08-08 18:18:11.000000000 +0200 @@ -5,7 +5,7 @@ import logging from email import charset -__version__ = "4.2.6" +__version__ = "4.2.7" logger = logging.getLogger(__name__) os.environ['TZ'] = 'UTC' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond/ir/action.py new/trytond-4.2.7/trytond/ir/action.py --- old/trytond-4.2.6/trytond/ir/action.py 2017-08-08 18:17:33.000000000 +0200 +++ new/trytond-4.2.7/trytond/ir/action.py 2017-11-07 16:53:27.000000000 +0100 @@ -136,7 +136,7 @@ @classmethod def search_groups(cls, name, clause): - return [('action.groups',) + tuple(clause[1:])] + return [('action.' + clause[0],) + tuple(clause[1:])] @classmethod def validate(cls, actions): @@ -293,7 +293,7 @@ @classmethod def search_action(cls, name, clause): - return [('action.' + name,) + tuple(clause[1:])] + return [('action.' + clause[0],) + tuple(clause[1:])] @classmethod def create(cls, vlist): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond/ir/translation.py new/trytond-4.2.7/trytond/ir/translation.py --- old/trytond-4.2.6/trytond/ir/translation.py 2017-05-03 18:52:26.000000000 +0200 +++ new/trytond-4.2.7/trytond/ir/translation.py 2017-11-07 16:53:27.000000000 +0100 @@ -692,33 +692,10 @@ ModelView._fields_view_get_cache.clear() vlist = [x.copy() for x in vlist] - cursor = Transaction().connection.cursor() - table = cls.__table__() for vals in vlist: if not vals.get('module'): if Transaction().context.get('module'): vals['module'] = Transaction().context['module'] - elif vals.get('type', '') in { - 'report', 'view', 'wizard_button', 'selection', - 'error'}: - cursor.execute(*table.select(table.module, - where=(table.name == vals.get('name') or '') - & (table.res_id == vals.get('res_id') or -1) - & (table.lang == 'en') - & (table.type == vals.get('type') or '') - & (table.src == vals.get('src') or ''))) - fetchone = cursor.fetchone() - if fetchone: - vals['module'] = fetchone[0] - else: - cursor.execute(*table.select(table.module, table.src, - where=(table.name == vals.get('name') or '') - & (table.res_id == vals.get('res_id') or -1) - & (table.lang == 'en') - & (table.type == vals.get('type') or ''))) - fetchone = cursor.fetchone() - if fetchone: - vals['module'], vals['src'] = fetchone vals['src_md5'] = cls.get_src_md5(vals.get('src')) return super(Translation, cls).create(vlist) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond/model/modelstorage.py new/trytond-4.2.7/trytond/model/modelstorage.py --- old/trytond-4.2.6/trytond/model/modelstorage.py 2017-05-03 18:52:26.000000000 +0200 +++ new/trytond-4.2.7/trytond/model/modelstorage.py 2017-11-07 16:53:27.000000000 +0100 @@ -270,10 +270,16 @@ if 'state' in cls._defaults: default['state'] = cls._defaults['state']() + def is_readonly(Model): + return (not issubclass(Model, ModelStorage) + or (hasattr(Model, 'table_query') + and Model.table_query())) + def convert_data(field_defs, data): data = data.copy() for field_name in field_defs: ftype = field_defs[field_name]['type'] + field = cls._fields[field_name] if field_name in ( 'create_date', @@ -285,9 +291,8 @@ if field_name in default: data[field_name] = default[field_name] - elif (isinstance(cls._fields[field_name], fields.Function) - and not isinstance(cls._fields[field_name], - fields.Property)): + elif (isinstance(field, fields.Function) + and not isinstance(field, fields.Property)): del data[field_name] elif ftype in ('many2one', 'one2one'): try: @@ -296,10 +301,14 @@ except Exception: pass elif ftype in ('one2many',): - if data[field_name]: + if is_readonly(field.get_target()): + del data[field_name] + elif data[field_name]: data[field_name] = [('copy', data[field_name])] elif ftype == 'many2many': - if data[field_name]: + if is_readonly(pool.get(field.relation_name)): + del data[field_name] + elif data[field_name]: data[field_name] = [('add', data[field_name])] if 'id' in data: del data['id'] @@ -991,12 +1000,16 @@ validate_domain(field) - def required_test(value, field_name): + def required_test(value, field_name, field): if (isinstance(value, (type(None), type(False), list, tuple, basestring, dict)) and not value): cls.raise_user_error('required_validation_record', error_args=cls._get_error_args(field_name)) + if (field._type == 'reference' + and not isinstance(value, ModelStorage)): + cls.raise_user_error('required_validation_record', + error_args=cls._get_error_args(field_name)) # validate states required if field.states and 'required' in field.states: if is_pyson(field.states['required']): @@ -1012,16 +1025,17 @@ required = PYSONDecoder(env).decode(pyson_required) if required: required_test(getattr(record, field_name), - field_name) + field_name, field) else: if field.states['required']: for record in records: required_test(getattr(record, field_name), - field_name) + field_name, field) # validate required if field.required: for record in records: - required_test(getattr(record, field_name), field_name) + required_test( + getattr(record, field_name), field_name, field) # validate size if hasattr(field, 'size') and field.size is not None: for record in records: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond/tryton.rnc new/trytond-4.2.7/trytond/tryton.rnc --- old/trytond-4.2.6/trytond/tryton.rnc 1970-01-01 01:00:00.000000000 +0100 +++ new/trytond-4.2.7/trytond/tryton.rnc 2017-05-03 18:48:51.000000000 +0200 @@ -0,0 +1,32 @@ +namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" + +tryton = element tryton { attlist.tryton, data* } +attlist.tryton &= empty +data = element data { attlist.data, (record | menuitem)* } +attlist.data &= + [ a:defaultValue = "0" ] attribute noupdate { "0" | "1" }? +attlist.data &= + [ a:defaultValue = "0" ] attribute grouped { "0" | "1" }? +attlist.data &= attribute depends { text } +record = element record { attlist.record, field* } +attlist.record &= attribute model { text } +attlist.record &= attribute id { text } +attlist.record &= + [ a:defaultValue = "0" ] attribute update { "0" | "1" }? +field = element field { attlist.field, text } +attlist.field &= attribute name { text } +attlist.field &= attribute search { text }? +attlist.field &= attribute ref { text }? +attlist.field &= attribute eval { text }? +attlist.field &= attribute pyson { "0" | "1" }? +attlist.field &= attribute type { "xml" }? +menuitem = element menuitem { attlist.menuitem, empty } +attlist.menuitem &= attribute id { text } +attlist.menuitem &= attribute name { text }? +attlist.menuitem &= attribute icon { text }? +attlist.menuitem &= attribute sequence { text }? +attlist.menuitem &= attribute parent { text }? +attlist.menuitem &= attribute action { text }? +attlist.menuitem &= attribute groups { text }? +attlist.menuitem &= attribute active { text }? +start = tryton diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond.egg-info/PKG-INFO new/trytond-4.2.7/trytond.egg-info/PKG-INFO --- old/trytond-4.2.6/trytond.egg-info/PKG-INFO 2017-08-08 18:17:36.000000000 +0200 +++ new/trytond-4.2.7/trytond.egg-info/PKG-INFO 2017-11-07 16:53:30.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: trytond -Version: 4.2.6 +Version: 4.2.7 Summary: Tryton server Home-page: http://www.tryton.org/ Author: Tryton diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond-4.2.6/trytond.egg-info/SOURCES.txt new/trytond-4.2.7/trytond.egg-info/SOURCES.txt --- old/trytond-4.2.6/trytond.egg-info/SOURCES.txt 2017-08-08 18:17:36.000000000 +0200 +++ new/trytond-4.2.7/trytond.egg-info/SOURCES.txt 2017-11-07 16:53:30.000000000 +0100 @@ -1,3 +1,5 @@ +.drone.yml +.hgtags CHANGELOG COPYRIGHT INSTALL @@ -5,6 +7,7 @@ MANIFEST.in README setup.py +tox.ini bin/trytond bin/trytond-admin bin/trytond-cron @@ -68,6 +71,7 @@ trytond/sendmail.py trytond/test_loader.py trytond/transaction.py +trytond/tryton.rnc trytond/url.py trytond/wsgi.py trytond.egg-info/PKG-INFO
