Since saas-3, website controllers use `request.website.render` to render the template of a web page. This was kept for retro compatibility. It's time to stop using deprecated stuff. Same for `_render` method on website. 'json' route don't use `request.render` since `JsonRequest` has no `render` method.
25 lines
1009 B
Python
25 lines
1009 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import http
|
|
from odoo.http import request
|
|
from odoo.addons.website.models.website import unslug
|
|
|
|
|
|
class WebsitePartnerPage(http.Controller):
|
|
|
|
# Do not use semantic controller due to SUPERUSER_ID
|
|
@http.route(['/partners/<partner_id>'], type='http', auth="public", website=True)
|
|
def partners_detail(self, partner_id, **post):
|
|
_, partner_id = unslug(partner_id)
|
|
if partner_id:
|
|
partner_sudo = request.env['res.partner'].sudo().browse(partner_id)
|
|
is_website_publisher = request.env['res.users'].has_group('base.group_website_publisher')
|
|
if partner_sudo.exists() and (partner_sudo.website_published or is_website_publisher):
|
|
values = {
|
|
'main_object': partner_sudo,
|
|
'partner': partner_sudo,
|
|
'edit_page': False
|
|
}
|
|
return request.render("website_partner.partner_page", values)
|
|
return request.not_found()
|