[MERGE] forward port branch 11.0 up to e5f93b83c6
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
from odoo.addons.account.tests.account_test_classes import AccountingTestCase
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.tests import tagged
|
||||
from odoo.tools import mute_logger
|
||||
|
||||
import time
|
||||
|
||||
@@ -61,8 +60,7 @@ class TestAccountInvoiceRounding(AccountingTestCase):
|
||||
# to avoid a ValidationError from _check_cash_rounding because the onchange
|
||||
# are not well triggered in the tests.
|
||||
try:
|
||||
with mute_logger('odoo.models'):
|
||||
invoice_id.cash_rounding_id = cash_rounding_id
|
||||
invoice_id.cash_rounding_id = cash_rounding_id
|
||||
except ValidationError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span class="pull-right label label-default">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'sent': 'success'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'sent': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1487,7 +1487,7 @@
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span class="pull-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'posted': 'success'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'posted': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span class="pull-right text-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'primary', 'open': 'success', 'close': 'default'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'primary', 'open': 'success', 'close': 'default'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<span class="pull-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'done': 'success'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'done': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -233,7 +233,7 @@ class GamificationBadge(models.Model):
|
||||
elif self.rule_auth == 'users' and self.env.user not in self.rule_auth_user_ids:
|
||||
return self.USER_NOT_VIP
|
||||
elif self.rule_auth == 'having':
|
||||
all_user_badges = self.env['gamification.badge.user'].search([('user_id', '=', self.env.uid)])
|
||||
all_user_badges = self.env['gamification.badge.user'].search([('user_id', '=', self.env.uid)]).mapped('badge_id')
|
||||
if self.rule_auth_badge_ids - all_user_badges:
|
||||
return self.BADGE_REQUIRED
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<div>
|
||||
<strong class="o_kanban_record_title"><t t-esc="record.employee_id.value"/></strong>
|
||||
<span class="pull-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'validate': 'success','confirm': 'default', 'cancel': 'danger'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'validate': 'success','confirm': 'default', 'cancel': 'danger'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-muted o_kanban_record_subtitle">
|
||||
|
||||
@@ -383,7 +383,7 @@
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title"><field name="product_id"/></strong>
|
||||
</div>
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'new': 'default', 'confirmed': 'success', 'cancelled':'danger'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'new': 'default', 'confirmed': 'success', 'cancelled':'danger'}}"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="note"/>
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<span class="pull-right text-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'done': 'success'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'done': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,6 +6,7 @@ from datetime import datetime
|
||||
import hashlib
|
||||
import hmac
|
||||
import logging
|
||||
import string
|
||||
import time
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
@@ -53,8 +54,16 @@ class PaymentAcquirerAuthorize(models.Model):
|
||||
values['x_fp_sequence'],
|
||||
values['x_fp_timestamp'],
|
||||
values['x_amount'],
|
||||
values['x_currency_code']])
|
||||
return hmac.new(values['x_trans_key'].encode('utf-8'), data.encode('utf-8'), hashlib.md5).hexdigest()
|
||||
values['x_currency_code']]).encode('utf-8')
|
||||
|
||||
# [BACKWARD COMPATIBILITY] Check that the merchant did update his transaction
|
||||
# key to signature key (end of MD5 support from Authorize.net)
|
||||
# The signature key is now '128-character hexadecimal format', while the
|
||||
# transaction key was only 16-character.
|
||||
if len(values['x_trans_key']) == 128:
|
||||
return hmac.new(values['x_trans_key'].decode("hex").encode('utf-8'), data, hashlib.sha512).hexdigest().upper()
|
||||
else:
|
||||
return hmac.new(values['x_trans_key'].encode('utf-8'), data, hashlib.md5).hexdigest()
|
||||
|
||||
@api.multi
|
||||
def authorize_form_generate_values(self, values):
|
||||
@@ -182,7 +191,7 @@ class TxAuthorize(models.Model):
|
||||
def _authorize_form_get_tx_from_data(self, data):
|
||||
""" Given a data dict coming from authorize, verify it and find the related
|
||||
transaction record. """
|
||||
reference, trans_id, fingerprint = data.get('x_invoice_num'), data.get('x_trans_id'), data.get('x_MD5_Hash')
|
||||
reference, trans_id, fingerprint = data.get('x_invoice_num'), data.get('x_trans_id'), data.get('x_SHA2_Hash') or data.get('x_MD5_Hash')
|
||||
if not reference or not trans_id or not fingerprint:
|
||||
error_msg = _('Authorize: received data with missing reference (%s) or trans_id (%s) or fingerprint (%s)') % (reference, trans_id, fingerprint)
|
||||
_logger.info(error_msg)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import hashlib
|
||||
import hmac
|
||||
import time
|
||||
from werkzeug import urls
|
||||
from lxml import objectify
|
||||
@@ -29,15 +27,6 @@ class AuthorizeCommon(PaymentAcquirerCommon):
|
||||
@odoo.tests.tagged('post_install', '-at_install')
|
||||
class AuthorizeForm(AuthorizeCommon):
|
||||
|
||||
def _authorize_generate_hashing(self, values):
|
||||
data = '^'.join([
|
||||
values['x_login'],
|
||||
values['x_fp_sequence'],
|
||||
values['x_fp_timestamp'],
|
||||
values['x_amount'],
|
||||
]) + '^'
|
||||
return hmac.new(values['x_trans_key'].encode('utf-8'), data.encode('utf-8'), hashlib.md5).hexdigest()
|
||||
|
||||
def test_10_Authorize_form_render(self):
|
||||
self.assertEqual(self.authorize.environment, 'test', 'test without test environment')
|
||||
|
||||
@@ -82,7 +71,7 @@ class AuthorizeForm(AuthorizeCommon):
|
||||
'x_ship_to_state': None,
|
||||
}
|
||||
|
||||
form_values['x_fp_hash'] = self._authorize_generate_hashing(form_values)
|
||||
form_values['x_fp_hash'] = self.env['payment.acquirer']._authorize_generate_hashing(form_values)
|
||||
# render the button
|
||||
res = self.authorize.render('SO004', 56.16, self.currency_usd.id, values=self.buyer_values)
|
||||
# check form result
|
||||
@@ -109,7 +98,9 @@ class AuthorizeForm(AuthorizeCommon):
|
||||
# typical data posted by authorize after client has successfully paid
|
||||
authorize_post_data = {
|
||||
'return_url': u'/shop/payment/validate',
|
||||
# x_MD5_Hash will be empty starting the 28th March 2019
|
||||
'x_MD5_Hash': u'7934485E1C105940BE854208D10FAB4F',
|
||||
'x_SHA2_Hash': u'7D3AC844BE8CA3F649AB885A90D22CFE35B850338EC91D1A5ADD819A85FF948A3D777334A18CDE36821DC8F2B42A6E1950C1FF96B52B60F23201483A656195FB',
|
||||
'x_account_number': u'XXXX0027',
|
||||
'x_address': u'Huge Street 2/543',
|
||||
'x_amount': u'320.00',
|
||||
|
||||
@@ -1307,7 +1307,7 @@ var ClientListScreenWidget = ScreenWidget.extend({
|
||||
// what happens when we've just pushed modifications for a partner of id partner_id
|
||||
saved_client_details: function(partner_id){
|
||||
var self = this;
|
||||
this.reload_partners().then(function(){
|
||||
return this.reload_partners().then(function(){
|
||||
var partner = self.pos.db.get_partner_by_id(partner_id);
|
||||
if (partner) {
|
||||
self.new_client = partner;
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<span class="pull-right text-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default',
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default',
|
||||
'invoiced': 'success', 'cancel': 'danger'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title"><span><field name="config_id"/></span></strong>
|
||||
</div>
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'opening_control': 'default',
|
||||
<field name="state" widget="label_selection" options="{'classes': {'opening_control': 'default',
|
||||
'opened': 'success', 'closing_control': 'warning', 'closed': 'warning'}}"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_body">
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<div class="o_kanban_record_headings mt4">
|
||||
<strong class="o_kanban_record_title"><field name="name"/></strong>
|
||||
</div>
|
||||
<field name="exclusive" widget="kanban_label_selection"/>
|
||||
<field name="exclusive" widget="label_selection"/>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
@@ -253,7 +253,7 @@
|
||||
<div class="o_kanban_record_headings mt4">
|
||||
<strong class="o_kanban_record_title"><span><field name="name"/></span></strong>
|
||||
</div>
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'in_progress': 'default', 'open': 'success', 'done': 'success', 'close': 'danger'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'in_progress': 'default', 'open': 'success', 'done': 'success', 'close': 'danger'}}"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_body">
|
||||
<span class="text-muted"><field name="type_id"/></span>
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
<strong><span><t t-esc="record.name.value"/></span></strong>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<span class="label label-default"><field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'info', 'cancel': 'danger', 'done': 'success', 'under_repair': 'dafault'}}"/></span>
|
||||
<span class="label label-default"><field name="state" widget="label_selection" options="{'classes': {'draft': 'info', 'cancel': 'danger', 'done': 'success', 'under_repair': 'dafault'}}"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title"><span><t t-esc="record.name.value"/></span></strong>
|
||||
</div>
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'info', 'cancel': 'default', 'confirm': 'success', 'done': 'success'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'info', 'cancel': 'default', 'confirm': 'success', 'done': 'success'}}"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_left">
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title"><span><field name="name"/></span></strong>
|
||||
</div>
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'cancel': 'danger', 'assigned': 'success', 'confirmed': 'default'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'cancel': 'danger', 'assigned': 'success', 'confirmed': 'default'}}"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_body">
|
||||
<field name="product_id"/>
|
||||
@@ -446,7 +446,7 @@
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<span class="pull-right text-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'default', 'cancel': 'danger',
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'cancel': 'danger',
|
||||
'assigned': 'success', 'confirmed': 'default'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
@@ -510,7 +510,7 @@
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span class="pull-right">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'draft': 'info', 'cancel': 'default',
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'info', 'cancel': 'default',
|
||||
'assigned': 'success', 'done': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title"><field name="name"/></strong>
|
||||
</div>
|
||||
<field name="state" widget="kanban_label_selection"/>
|
||||
<field name="state" widget="label_selection"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_left"/>
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<field name="date_create"/>
|
||||
</div>
|
||||
<div class="oe_kanban_bottom_right mr4">
|
||||
<field name="state" widget="kanban_label_selection" options="{'classes': {'new': 'default', 'done': 'success', 'skip':'warning'}}"/>
|
||||
<field name="state" widget="label_selection" options="{'classes': {'new': 'default', 'done': 'success', 'skip':'warning'}}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -42,8 +42,9 @@ registry
|
||||
.add('attachment_image', basic_fields.AttachmentImage)
|
||||
.add('image_selection', basic_fields.ImageSelection)
|
||||
.add('label_selection', basic_fields.LabelSelection)
|
||||
.add('kanban_label_selection', basic_fields.LabelSelection) // deprecated, use label_selection
|
||||
.add('state_selection', basic_fields.StateSelectionWidget)
|
||||
.add('kanban_state_selection', basic_fields.StateSelectionWidget)
|
||||
.add('kanban_state_selection', basic_fields.StateSelectionWidget) // deprecated, use state_selection
|
||||
.add('boolean_favorite', basic_fields.FavoriteWidget)
|
||||
.add('boolean_button', basic_fields.FieldBooleanButton)
|
||||
.add('boolean_toggle', basic_fields.BooleanToggle)
|
||||
|
||||
@@ -76,6 +76,11 @@ msgstr ""
|
||||
msgid "Mailing Subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#. module: website_mass_mailing
|
||||
#: model:ir.ui.view,arch_db:website_mass_mailing.unsubscribe
|
||||
msgid "Update my subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#. module: website_mass_mailing
|
||||
#. openerp-web
|
||||
#: code:addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js:21
|
||||
@@ -170,4 +175,3 @@ msgstr ""
|
||||
#: model:ir.ui.view,arch_db:website_mass_mailing.s_newsletter_subscribe_popup
|
||||
msgid "your email..."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</ul>
|
||||
|
||||
<div class="text-center mb16">
|
||||
<input type="submit" id="send_form" class="btn btn-primary" value="Update my subscriptions"/>
|
||||
<button type="submit" id="send_form" class="btn btn-primary">Update my subscriptions</button>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
|
||||
@@ -227,7 +227,7 @@ class Website(models.Model):
|
||||
country_code = request.session['geoip'].get('country_code')
|
||||
if country_code:
|
||||
country_id = request.env['res.country'].search([('code', '=', country_code)], limit=1).id
|
||||
fp_id = request.env['account.fiscal.position'].sudo()._get_fpos_by_region(country_id)
|
||||
fp_id = request.env['account.fiscal.position'].sudo().with_context(force_company=request.website.company_id.id)._get_fpos_by_region(country_id)
|
||||
sale_order.fiscal_position_id = fp_id
|
||||
else:
|
||||
# if no geolocation, use the public user fp
|
||||
|
||||
@@ -866,7 +866,7 @@ class TestViews(ViewCase):
|
||||
# implemeted elsewhere...
|
||||
modifiers_tests()
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_invalid_field(self):
|
||||
with self.assertRaises(ValidationError):
|
||||
self.View.create({
|
||||
@@ -880,7 +880,7 @@ class TestViews(ViewCase):
|
||||
""",
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_invalid_subfield(self):
|
||||
with self.assertRaises(ValidationError):
|
||||
self.View.create({
|
||||
@@ -899,7 +899,7 @@ class TestViews(ViewCase):
|
||||
""",
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_context_in_view(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -919,7 +919,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % '',
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_context_in_subview(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -951,7 +951,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('<field name="model"/>', ''),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_context_in_subview_with_parent(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -982,7 +982,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('', '<field name="model"/>'),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_context_in_subsubview_with_parent(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -1024,7 +1024,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('', '', '<field name="model"/>'),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_domain_in_view(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -1044,7 +1044,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % '',
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_domain_in_subview(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -1075,7 +1075,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('<field name="model"/>', ''),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_domain_in_subview_with_parent(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -1106,7 +1106,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('', '<field name="model"/>'),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_domain_on_field_in_view(self):
|
||||
field = self.env['ir.ui.view']._fields['inherit_id']
|
||||
self.patch(field, 'domain', "[('model', '=', model)]")
|
||||
@@ -1129,7 +1129,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % '',
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view')
|
||||
def test_domain_on_field_in_subview(self):
|
||||
field = self.env['ir.ui.view']._fields['inherit_id']
|
||||
self.patch(field, 'domain', "[('model', '=', model)]")
|
||||
@@ -1163,7 +1163,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('<field name="model"/>', ''),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view')
|
||||
def test_domain_on_field_in_subview_with_parent(self):
|
||||
field = self.env['ir.ui.view']._fields['inherit_id']
|
||||
self.patch(field, 'domain', "[('model', '=', parent.model)]")
|
||||
@@ -1197,7 +1197,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('', '<field name="model"/>'),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view')
|
||||
def test_domain_on_field_in_noneditable_subview(self):
|
||||
field = self.env['ir.ui.view']._fields['inherit_id']
|
||||
self.patch(field, 'domain', "[('model', '=', model)]")
|
||||
@@ -1225,7 +1225,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ' editable="bottom"',
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view')
|
||||
def test_domain_on_readonly_field_in_view(self):
|
||||
field = self.env['ir.ui.view']._fields['inherit_id']
|
||||
self.patch(field, 'domain', "[('model', '=', model)]")
|
||||
@@ -1255,7 +1255,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch,
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view')
|
||||
def test_domain_on_readonly_field_in_subview(self):
|
||||
field = self.env['ir.ui.view']._fields['inherit_id']
|
||||
self.patch(field, 'domain', "[('model', '=', model)]")
|
||||
@@ -1283,7 +1283,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % '',
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.ir.ir_ui_view')
|
||||
def test_attrs_field(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -1304,7 +1304,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % '',
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_attrs_subfield(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
@@ -1336,7 +1336,7 @@ class TestViews(ViewCase):
|
||||
'arch': arch % ('<field name="model"/>', ''),
|
||||
})
|
||||
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view', 'odoo.models')
|
||||
@mute_logger('odoo.addons.base.models.ir_ui_view')
|
||||
def test_attrs_subfield_with_parent(self):
|
||||
arch = """
|
||||
<form string="View">
|
||||
|
||||
@@ -1041,7 +1041,6 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})):
|
||||
except ValidationError as e:
|
||||
raise
|
||||
except Exception as e:
|
||||
_logger.exception('Exception while validating constraint')
|
||||
raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
|
||||
|
||||
@api.model
|
||||
|
||||
Reference in New Issue
Block a user