diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-08-30 17:20:28 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-08-30 17:20:28 +0200 |
| commit | 545e6d20344f37081ccd6c6e788ea1c5383717af (patch) | |
| tree | 7786f6001919ea18792c35c4f769336ef991fd3a /odoo | |
| parent | 513545cdbdf95ae61c068270ab61eec8b81c9bd8 (diff) | |
| parent | 52f6e38cea8ff9d16ab3432b3ccf032472e5a666 (diff) | |
[MERGE] forward port branch 12.0 up to 52f6e38cea8
Diffstat (limited to 'odoo')
| -rw-r--r-- | odoo/addons/base/data/ir_module_module.xml | 2 | ||||
| -rw-r--r-- | odoo/addons/base/models/ir_model.py | 2 | ||||
| -rw-r--r-- | odoo/addons/base/models/res_bank.py | 7 | ||||
| -rw-r--r-- | odoo/addons/base/models/res_partner.py | 6 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_base.py | 8 | ||||
| -rw-r--r-- | odoo/addons/base/views/ir_qweb_widget_templates.xml | 6 | ||||
| -rw-r--r-- | odoo/tools/mail.py | 2 |
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&utm_medium=module</field> + <field name="website">https://www.odoo.com/page/project-management?utm_source=db&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', ]) |
