summaryrefslogtreecommitdiff
path: root/odoo/addons/base/models/res_partner.py
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/addons/base/models/res_partner.py')
-rw-r--r--odoo/addons/base/models/res_partner.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py
index c74e10f28cb..916bf15d731 100644
--- a/odoo/addons/base/models/res_partner.py
+++ b/odoo/addons/base/models/res_partner.py
@@ -6,6 +6,7 @@ import datetime
import hashlib
import pytz
import threading
+import re
from email.utils import formataddr
@@ -239,6 +240,12 @@ class Partner(models.Model):
('check_name', "CHECK( (type='contact' AND name IS NOT NULL) or (type!='contact') )", 'Contacts require a name.'),
]
+ @api.model_cr
+ def init(self):
+ self._cr.execute("""SELECT indexname FROM pg_indexes WHERE indexname = 'res_partner_vat_index'""")
+ if not self._cr.fetchone():
+ self._cr.execute("""CREATE INDEX res_partner_vat_index ON res_partner (regexp_replace(upper(vat), '[^A-Z0-9]+', '', 'g'))""")
+
@api.depends('is_company', 'name', 'parent_id.name', 'type', 'company_name')
def _compute_display_name(self):
diff = dict(show_address=None, show_address_only=None, show_email=None)
@@ -610,6 +617,8 @@ class Partner(models.Model):
name = "%s <%s>" % (name, partner.email)
if self._context.get('html_format'):
name = name.replace('\n', '<br/>')
+ if self._context.get('show_vat') and partner.vat:
+ name = "%s - %s" % (name, partner.vat)
return name
@api.multi
@@ -697,7 +706,9 @@ class Partner(models.Model):
percent=unaccent('%s'),
vat=unaccent('vat'),)
- where_clause_params += [search_name]*5
+ where_clause_params += [search_name]*3 # for email / display_name, reference
+ where_clause_params += [re.sub('[^a-zA-Z0-9]+', '', search_name)] # for vat
+ where_clause_params += [search_name] # for order by
if limit:
query += ' limit %s'
where_clause_params.append(limit)