summaryrefslogtreecommitdiff
path: root/odoo
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-08-30 17:20:28 +0200
committerChristophe Simonis <chs@odoo.com>2019-08-30 17:20:28 +0200
commit545e6d20344f37081ccd6c6e788ea1c5383717af (patch)
tree7786f6001919ea18792c35c4f769336ef991fd3a /odoo
parent513545cdbdf95ae61c068270ab61eec8b81c9bd8 (diff)
parent52f6e38cea8ff9d16ab3432b3ccf032472e5a666 (diff)
[MERGE] forward port branch 12.0 up to 52f6e38cea8
Diffstat (limited to 'odoo')
-rw-r--r--odoo/addons/base/data/ir_module_module.xml2
-rw-r--r--odoo/addons/base/models/ir_model.py2
-rw-r--r--odoo/addons/base/models/res_bank.py7
-rw-r--r--odoo/addons/base/models/res_partner.py6
-rw-r--r--odoo/addons/base/tests/test_base.py8
-rw-r--r--odoo/addons/base/views/ir_qweb_widget_templates.xml6
-rw-r--r--odoo/tools/mail.py2
7 files changed, 20 insertions, 13 deletions
diff --git a/odoo/addons/base/data/ir_module_module.xml b/odoo/addons/base/data/ir_module_module.xml
index 4f8ce3f9b60..82f41049a34 100644
--- a/odoo/addons/base/data/ir_module_module.xml
+++ b/odoo/addons/base/data/ir_module_module.xml
@@ -136,7 +136,7 @@
<field name="author">Odoo S.A.</field>
<field name="to_buy" eval="True"/>
<field name="icon">/base/static/img/icons/project_forecast.png</field>
- <field name="website">https://www.odoo.com/page/project?utm_source=db&amp;utm_medium=module</field>
+ <field name="website">https://www.odoo.com/page/project-management?utm_source=db&amp;utm_medium=module</field>
</record>
<record model="ir.module.module" id="base.module_sale_subscription">
diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py
index 1b6c2124622..60a348c39bb 100644
--- a/odoo/addons/base/models/ir_model.py
+++ b/odoo/addons/base/models/ir_model.py
@@ -1280,7 +1280,7 @@ class IrModelAccess(models.Model):
msg_params['groups_list'] = groups
else:
msg_tail = _("No group currently allows this operation.")
- msg_tail += ' - ({} {}, {} {})'.format(_('Operation:'), mode, _('User:'), self._uid)
+ msg_tail += u' - ({} {}, {} {})'.format(_('Operation:'), mode, _('User:'), self._uid)
_logger.info('Access Denied by ACLs for operation: %s, uid: %s, model: %s', mode, self._uid, model)
msg = '%s %s' % (msg_heads[mode], msg_tail)
raise AccessError(msg % msg_params)
diff --git a/odoo/addons/base/models/res_bank.py b/odoo/addons/base/models/res_bank.py
index d9a0433ecc2..729f1c884c1 100644
--- a/odoo/addons/base/models/res_bank.py
+++ b/odoo/addons/base/models/res_bank.py
@@ -138,11 +138,6 @@ class ResPartnerBank(models.Model):
@api.multi
def _validate_qr_code_arguments(self):
for bank in self:
- if bank.currency_id.name == False:
- currency = bank.company_id.currency_id
- else:
- currency = bank.currency_id
bank.qr_code_valid = (bank.bank_bic
and bank.company_id.name
- and bank.acc_number
- and (currency.name == 'EUR'))
+ and bank.acc_number)
diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py
index 2a8f9f7c8cb..3b33f26fb07 100644
--- a/odoo/addons/base/models/res_partner.py
+++ b/odoo/addons/base/models/res_partner.py
@@ -828,10 +828,14 @@ class Partner(models.Model):
e.g. ``"Raoul Grosbedon <r.g@grosbedon.fr>"``"""
assert email, 'an email is required for find_or_create to work'
emails = tools.email_split(email)
+ name_emails = tools.email_split_and_format(email)
if emails:
email = emails[0]
+ name_email = name_emails[0]
+ else:
+ name_email = email
partners = self.search([('email', '=ilike', email)], limit=1)
- return partners.id or self.name_create(email)[0]
+ return partners.id or self.name_create(name_email)[0]
def _get_gravatar_image(self, email):
email_hash = hashlib.md5(email.lower().encode('utf-8')).hexdigest()
diff --git a/odoo/addons/base/tests/test_base.py b/odoo/addons/base/tests/test_base.py
index 231f1daadd2..5051fec4dad 100644
--- a/odoo/addons/base/tests/test_base.py
+++ b/odoo/addons/base/tests/test_base.py
@@ -69,17 +69,25 @@ class TestBase(TransactionCase):
def test_10_res_partner_find_or_create(self):
res_partner = self.env['res.partner']
+
email = SAMPLES[0][0]
partner_id, dummy = res_partner.name_create(email)
found_id = res_partner.find_or_create(email)
self.assertEqual(partner_id, found_id, 'find_or_create failed')
+ self.assertEqual(SAMPLES[0][1], res_partner.browse([found_id]).name, 'Partner name is incorrect')
+
partner_id2, dummy2 = res_partner.name_create('sarah.john@connor.com')
found_id2 = res_partner.find_or_create('john@connor.com')
self.assertNotEqual(partner_id2, found_id2, 'john@connor.com match sarah.john@connor.com')
+ self.assertEqual('john@connor.com', res_partner.browse([found_id2]).name, 'Partner name is incorrect')
+
new_id = res_partner.find_or_create(SAMPLES[1][0])
self.assertTrue(new_id > partner_id, 'find_or_create failed - should have created new one')
+ self.assertEqual(SAMPLES[1][2], res_partner.browse([new_id]).name, 'Partner name is incorrect')
+
new_id2 = res_partner.find_or_create(SAMPLES[2][0])
self.assertTrue(new_id2 > new_id, 'find_or_create failed - should have created new one again')
+ self.assertEqual(SAMPLES[2][1], res_partner.browse([new_id2]).name, 'Partner name is incorrect')
def test_15_res_partner_name_search(self):
res_partner = self.env['res.partner']
diff --git a/odoo/addons/base/views/ir_qweb_widget_templates.xml b/odoo/addons/base/views/ir_qweb_widget_templates.xml
index 6da8ec0efd6..47bf04a62ff 100644
--- a/odoo/addons/base/views/ir_qweb_widget_templates.xml
+++ b/odoo/addons/base/views/ir_qweb_widget_templates.xml
@@ -32,9 +32,9 @@
<span itemprop="addressCountry" t-esc="country_id"/>
</div>
</div>
- <div t-if="phone and 'phone' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-phone fa-fw' role="img" aria-label="Phone" title="Phone"/> <span itemprop="telephone" t-esc="phone"/></div>
- <div t-if="mobile and 'mobile' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-mobile fa-fw' role="img" aria-label="Mobile" title="Mobile"/> <span itemprop="telephone" t-esc="mobile"/></div>
- <div t-if="fax and 'fax' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-fax fa-fw' role="img" aria-label="Fax" title="Fax"/> <span itemprop="faxNumber" t-esc="fax"/></div>
+ <div t-if="phone and 'phone' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-phone fa-fw' role="img" aria-label="Phone" title="Phone"/> <span class="o_force_ltr" itemprop="telephone" t-esc="phone"/></div>
+ <div t-if="mobile and 'mobile' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-mobile fa-fw' role="img" aria-label="Mobile" title="Mobile"/> <span class="o_force_ltr" itemprop="telephone" t-esc="mobile"/></div>
+ <div t-if="fax and 'fax' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-fax fa-fw' role="img" aria-label="Fax" title="Fax"/> <span class="o_force_ltr" itemprop="faxNumber" t-esc="fax"/></div>
<div t-if="website and 'website' in fields">
<i t-if="not options.get('no_marker')" class='fa fa-globe' role="img" aria-label="Website" title="Website"/>
<a t-att-href="website and '%s%s' % ('http://' if '://' not in website else '',website)"><span itemprop="website" t-esc="website"/></a>
diff --git a/odoo/tools/mail.py b/odoo/tools/mail.py
index b6a743d874c..80e410e7301 100644
--- a/odoo/tools/mail.py
+++ b/odoo/tools/mail.py
@@ -34,7 +34,7 @@ safe_attrs = clean.defs.safe_attrs | frozenset(
['style',
'data-o-mail-quote', # quote detection
'data-oe-model', 'data-oe-id', 'data-oe-field', 'data-oe-type', 'data-oe-expression', 'data-oe-translation-id', 'data-oe-nodeid',
- 'data-publish', 'data-id', 'data-res_id', 'data-member_id', 'data-view-id'
+ 'data-publish', 'data-id', 'data-res_id', 'data-interval', 'data-member_id', 'data-scroll-background-ratio', 'data-view-id',
])