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


Reply via email to