Odoo18-Base/extra-addons/website_helpdesk/models/website.py

36 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, _
class Website(models.Model):
_inherit = "website"
def get_suggested_controllers(self):
suggested_controllers = super(Website, self).get_suggested_controllers()
suggested_controllers.append((_('Helpdesk Customer Satisfaction'), self.env['ir.http']._url_for('/helpdesk/rating'), 'helpdesk'))
return suggested_controllers
def configurator_get_footer_links(self):
links = super().configurator_get_footer_links()
links.append({'text': _("Help"), 'href': '/help'})
return links
class Menu(models.Model):
_inherit = "website.menu"
def _compute_visible(self):
""" Display helpdesk team menus even if they are unpublished """
helpdesk_menus = self.filtered(lambda menu: menu.url and menu.url.startswith("/helpdesk"))
if self.env.user._is_internal(): # avoid extra query if not needed
helpdesk_menus.is_visible = True
return super(Menu, self - helpdesk_menus)._compute_visible()
published_menus, = self.env['helpdesk.team']._read_group(
[('is_published', '=', True), ('website_menu_id', '!=', False)],
[], ['website_menu_id:recordset']
)[0]
for menu in helpdesk_menus:
menu.is_visible = menu in published_menus
return super(Menu, self - helpdesk_menus)._compute_visible()