diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-09-22 15:23:45 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-09-22 15:23:45 +0200 |
| commit | 856476d4418390ca89ef161e31faf61248eeaa1d (patch) | |
| tree | f87ab29316440a28e9032d1b811eeb7ea5155653 /odoo/addons | |
| parent | 4b812d9965128b02b4ac5ea49a66da622953cddc (diff) | |
| parent | b1b700adb1f26bb43e8f4b77b85f969a4b52d36c (diff) | |
[MERGE] forward port branch saas-12 up to b1b700a
Diffstat (limited to 'odoo/addons')
| -rw-r--r-- | odoo/addons/base/i18n/base.pot | 2 | ||||
| -rw-r--r-- | odoo/addons/base/ir/ir_model.py | 11 | ||||
| -rw-r--r-- | odoo/addons/base/ir/ir_qweb/qweb.py | 2 | ||||
| -rw-r--r-- | odoo/addons/base/res/res_users.py | 2 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_qweb.py | 10 |
5 files changed, 16 insertions, 11 deletions
diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index 6fa284e7b7f..7394362b3e6 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -8826,7 +8826,7 @@ msgstr "" #. module: base #: code:addons/base/res/res_users.py:316 #, python-format -msgid "Invalid group by" +msgid "Invalid 'group by' parameter" msgstr "" #. module: base diff --git a/odoo/addons/base/ir/ir_model.py b/odoo/addons/base/ir/ir_model.py index a1652323180..5d3260e58f2 100644 --- a/odoo/addons/base/ir/ir_model.py +++ b/odoo/addons/base/ir/ir_model.py @@ -414,6 +414,7 @@ class IrModelFields(models.Model): any(field.state != 'manual' for field in self): raise UserError(_("This column contains module data and cannot be removed!")) + model_names = self.mapped('model') self._drop_column() res = super(IrModelFields, self).unlink() @@ -423,6 +424,8 @@ class IrModelFields(models.Model): self._cr.commit() api.Environment.reset() registry = Registry.new(self._cr.dbname) + models = registry.descendants(model_names, '_inherits') + registry.init_models(self._cr, models, dict(self._context, update_custom_fields=True)) registry.signal_registry_change() return res @@ -455,8 +458,9 @@ class IrModelFields(models.Model): if vals['model'] in self.pool: # setup models; this re-initializes model in registry self.pool.setup_models(self._cr, partial=(not self.pool.ready)) - # update database schema - self.pool.init_models(self._cr, [vals['model']], dict(self._context, update_custom_fields=True)) + # update database schema of model and its descendant models + models = self.pool.descendants([vals['model']], '_inherits') + self.pool.init_models(self._cr, models, dict(self._context, update_custom_fields=True)) self.pool.signal_registry_change() return res @@ -538,7 +542,8 @@ class IrModelFields(models.Model): if patched_models: # update the database schema of the models to patch - self.pool.init_models(self._cr, patched_models, dict(self._context, update_custom_fields=True)) + models = self.pool.descendants(patched_models, '_inherits') + self.pool.init_models(self._cr, models, dict(self._context, update_custom_fields=True)) if column_rename or patched_models: self.pool.signal_registry_change() diff --git a/odoo/addons/base/ir/ir_qweb/qweb.py b/odoo/addons/base/ir/ir_qweb/qweb.py index ad0aaaa5f88..a50f478779f 100644 --- a/odoo/addons/base/ir/ir_qweb/qweb.py +++ b/odoo/addons/base/ir/ir_qweb/qweb.py @@ -246,7 +246,7 @@ class QWeb(object): """ body = [] self.compile(template, options)(self, body.append, values or {}) - return u''.join(body) + return u''.join(body).encode('utf8') def compile(self, template, options): """ Compile the given template into a rendering function:: diff --git a/odoo/addons/base/res/res_users.py b/odoo/addons/base/res/res_users.py index aa269952e0b..2b5cff01818 100644 --- a/odoo/addons/base/res/res_users.py +++ b/odoo/addons/base/res/res_users.py @@ -313,7 +313,7 @@ class Users(models.Model): if self._uid != SUPERUSER_ID: groupby_fields = set([groupby] if isinstance(groupby, basestring) else groupby) if groupby_fields.intersection(USER_PRIVATE_FIELDS): - raise AccessError(_('Invalid group by')) + raise AccessError(_("Invalid 'group by' parameter")) return super(Users, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy) @api.model diff --git a/odoo/addons/base/tests/test_qweb.py b/odoo/addons/base/tests/test_qweb.py index 949fc72ad3e..0210b03df05 100644 --- a/odoo/addons/base/tests/test_qweb.py +++ b/odoo/addons/base/tests/test_qweb.py @@ -25,7 +25,7 @@ class TestQWebTField(TransactionCase): field = etree.Element('span', {'t-field': u'company.name'}) company = self.env['res.company'].create({'name': "My Test Company"}) - result = self.engine.render(field, {'company': company}).encode('utf-8') + result = self.engine.render(field, {'company': company}) self.assertEqual( result, '<span data-oe-model="res.company" data-oe-id="%d" ' @@ -41,7 +41,7 @@ class TestQWebTField(TransactionCase): s = u"Testing «ταБЬℓσ»: 1<2 & 4+1>3, now 20% off!" company = self.env['res.company'].create({'name': s}) - result = self.engine.render(field, {'company': company}).encode('utf-8') + result = self.engine.render(field, {'company': company}) self.assertEqual( result, '<span data-oe-model="res.company" data-oe-id="%d" ' @@ -56,13 +56,13 @@ class TestQWebTField(TransactionCase): field = etree.Element('td', {'t-field': u'company.name'}) with self.assertRaisesRegexp(QWebException, r'^RTE widgets do not work correctly'): - self.engine.render(field, {'company': None}).encode('utf-8') + self.engine.render(field, {'company': None}) def test_reject_t_tag(self): field = etree.Element('t', {'t-field': u'company.name'}) with self.assertRaisesRegexp(QWebException, r'^t-field can not be used on a t element'): - self.engine.render(field, {'company': None}).encode('utf-8') + self.engine.render(field, {'company': None}) from copy import deepcopy @@ -128,7 +128,7 @@ class TestQWeb(TransactionCase): result = doc.find('result[@id="{}"]'.format(template)).text self.assertEqual( - qweb.render(template, values=params, load=loader).strip().encode('utf-8'), + qweb.render(template, values=params, load=loader).strip(), (result or u'').strip().encode('utf-8'), template ) |
