diff --git a/addons/website/models/res_partner.py b/addons/website/models/res_partner.py
index 2329e0ff1c8..caa3f992335 100644
--- a/addons/website/models/res_partner.py
+++ b/addons/website/models/res_partner.py
@@ -4,6 +4,7 @@
import werkzeug
from odoo import api, fields, models
+from odoo.tools.pycompat import izip
def urlplus(url, params):
@@ -36,3 +37,19 @@ class Partner(models.Model):
'z': zoom,
}
return urlplus('https://maps.google.com/maps', params)
+
+ @api.multi
+ def _get_name(self):
+ name = super(Partner, self)._get_name()
+ if self._context.get('display_website') and self.env.user.has_group('website.group_multi_website'):
+ if self.website_id:
+ name += ' [%s]' % self.website_id.name
+ return name
+
+ def _compute_display_name(self):
+ self2 = self.with_context(display_website=False)
+ super(Partner, self2)._compute_display_name()
+
+ # onchange uses the cache to retrieve value, we need to copy computed_value into the initial env
+ for record, record2 in izip(self, self2):
+ record.display_name = record2.display_name
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index e8eea753f80..8fee73ac109 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -967,6 +967,14 @@ class Menu(models.Model):
parent_path = fields.Char(index=True)
is_visible = fields.Boolean(compute='_compute_visible', string='Is Visible')
+ @api.multi
+ def name_get(self):
+ res = []
+ for menu in self:
+ website_suffix = '%s - %s' % (menu.name, menu.website_id.name)
+ res.append((menu.id, website_suffix if menu.website_id and self.env.user.has_group('website.group_multi_website') else menu.name))
+ return res
+
@api.model
def create(self, vals):
''' In case a menu without a website_id is trying to be created, we duplicate
@@ -987,7 +995,7 @@ class Menu(models.Model):
'parent_id': website.menu_id.id,
})
res = super(Menu, self).create(vals)
- return res # create loop, what to return ? last created record ?
+ return res # Only one record is returned but multiple could have been created
@api.one
def _compute_visible(self):
diff --git a/addons/website_sale/views/sale_order_views.xml b/addons/website_sale/views/sale_order_views.xml
index 0bad33449e3..42759994435 100644
--- a/addons/website_sale/views/sale_order_views.xml
+++ b/addons/website_sale/views/sale_order_views.xml
@@ -233,6 +233,9 @@
sale.order
+
+ {'display_website': True}
+
diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py
index f17c0cd209f..a423af7835d 100644
--- a/odoo/addons/base/models/res_partner.py
+++ b/odoo/addons/base/models/res_partner.py
@@ -596,29 +596,35 @@ class Partner(models.Model):
'target': 'new',
'flags': {'form': {'action_buttons': True}}}
+ def _get_name(self):
+ """ Utility method to allow name_get to be overrided without re-browse the partner """
+ partner = self
+ name = partner.name or ''
+
+ if partner.company_name or partner.parent_id:
+ if not name and partner.type in ['invoice', 'delivery', 'other']:
+ name = dict(self.fields_get(['type'])['type']['selection'])[partner.type]
+ if not partner.is_company:
+ name = "%s, %s" % (partner.commercial_company_name or partner.parent_id.name, name)
+ if self._context.get('show_address_only'):
+ name = partner._display_address(without_company=True)
+ if self._context.get('show_address'):
+ name = name + "\n" + partner._display_address(without_company=True)
+ name = name.replace('\n\n', '\n')
+ name = name.replace('\n\n', '\n')
+ if self._context.get('address_inline'):
+ name = name.replace('\n', ', ')
+ if self._context.get('show_email') and partner.email:
+ name = "%s <%s>" % (name, partner.email)
+ if self._context.get('html_format'):
+ name = name.replace('\n', '
')
+ return name
+
@api.multi
def name_get(self):
res = []
for partner in self:
- name = partner.name or ''
-
- if partner.company_name or partner.parent_id:
- if not name and partner.type in ['invoice', 'delivery', 'other']:
- name = dict(self.fields_get(['type'])['type']['selection'])[partner.type]
- if not partner.is_company:
- name = "%s, %s" % (partner.commercial_company_name or partner.parent_id.name, name)
- if self._context.get('show_address_only'):
- name = partner._display_address(without_company=True)
- if self._context.get('show_address'):
- name = name + "\n" + partner._display_address(without_company=True)
- name = name.replace('\n\n', '\n')
- name = name.replace('\n\n', '\n')
- if self._context.get('address_inline'):
- name = name.replace('\n', ', ')
- if self._context.get('show_email') and partner.email:
- name = "%s <%s>" % (name, partner.email)
- if self._context.get('html_format'):
- name = name.replace('\n', '
')
+ name = partner._get_name()
res.append((partner.id, name))
return res