diff options
| author | Jeremy Kersten <jke@odoo.com> | 2019-06-13 09:26:39 +0000 |
|---|---|---|
| committer | Jeremy Kersten <jke@odoo.com> | 2019-06-13 09:26:54 +0000 |
| commit | f727cd2645deeb43bcfe1e5643dd3477a6076ab9 (patch) | |
| tree | eb430a54ce1cbfaad60cb7f526507e040e19059a /addons/website/models | |
| parent | 22437e331a60c81a80d619c075a9d516e980c078 (diff) | |
[IMP] base, model, website[*]: add get_base_url helper
Before this commit, when we want to make an external url, we need to know
if the record is related to a specific website or not, and choose base_url
or website domain.
Now each model have a fonction get_base_url (public to be callable from email
template, ...) and website override this function to add the website domain if
the record is website specific.
closes odoo/odoo#34089
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Diffstat (limited to 'addons/website/models')
| -rw-r--r-- | addons/website/models/res_partner.py | 7 | ||||
| -rw-r--r-- | addons/website/models/website.py | 21 |
2 files changed, 21 insertions, 7 deletions
diff --git a/addons/website/models/res_partner.py b/addons/website/models/res_partner.py index d62ee637675..9256f80293d 100644 --- a/addons/website/models/res_partner.py +++ b/addons/website/models/res_partner.py @@ -51,10 +51,3 @@ class Partner(models.Model): # onchange uses the cache to retrieve value, we need to copy computed_value into the initial env for record, record2 in zip(self, self2): record.display_name = record2.display_name - - @api.multi - def get_base_url(self): - """When using multi-website, we want the user to be redirected to the - most appropriate website if possible.""" - res = super(Partner, self).get_base_url() - return self.website_id and self.website_id._get_http_domain() or res diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 5202798fb97..f8dd6cc2cf7 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -820,3 +820,24 @@ class Website(models.Model): return '' res = urls.url_parse(self.domain) return 'http://' + self.domain if not res.scheme else self.domain + + +class BaseModel(models.AbstractModel): + _inherit = 'base' + + @api.multi + def get_base_url(self): + """ + Returns baseurl about one given record. + If a website_id field exists in the current record we use the url + from this website as base url. + + :return: the base url for this record + :rtype: string + + """ + self.ensure_one() + if 'website_id' in self and self.website_id.domain: + return self.website_id._get_http_domain() + else: + return super(BaseModel, self).get_base_url() |
