*: test_website, website, website_blog, website_event, website_forum, website_sale, website_slides Reverts this refactoring because it breaks multi-tenancy: if several databases run on the same server and different modules are installed in each database, the global variable becomes wrongly populated. Steps to reproduce: On runbot: - Go to the `-base` URL or simply select the `base` DB - Drag & Drop the search snippet (and let it set to "Search in Everything") - Try to use the snippet -> Crash on unknown model On Odoo.com saas DB: - Drag & Drop the search snippet (and let it set to "Search in Everything") - Try to use the snippet -> Crash on unknown model (unless you installed each and every module related to the search snippet) Locally: - odoo-bin -d first -i website --stop-after-init - odoo-bin -d second -i website_blog --stop-after-init - odoo-bin -d first,second - Try to use a search bar on "first" database (using "Search in Everything") => it tries to access the blog models. Revert of PR: #98423 opw-3045092 closes odoo/odoo#105077 X-original-commit: 5806f71af1b6f44aac063f7e504be736300f699d Related: odoo/enterprise#33669 Signed-off-by: Romain Derie (rde) <rde@odoo.com> Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, _
|
|
from odoo.addons.http_routing.models.ir_http import url_for
|
|
|
|
|
|
class Website(models.Model):
|
|
_inherit = "website"
|
|
|
|
def get_suggested_controllers(self):
|
|
suggested_controllers = super(Website, self).get_suggested_controllers()
|
|
suggested_controllers.append((_('Blog'), url_for('/blog'), 'website_blog'))
|
|
return suggested_controllers
|
|
|
|
def configurator_set_menu_links(self, menu_company, module_data):
|
|
blogs = module_data.get('#blog', [])
|
|
for idx, blog in enumerate(blogs):
|
|
new_blog = self.env['blog.blog'].create({
|
|
'name': blog['name'],
|
|
'website_id': self.id,
|
|
})
|
|
blog_menu_values = {
|
|
'name': blog['name'],
|
|
'url': '/blog/%s' % new_blog.id,
|
|
'sequence': blog['sequence'],
|
|
'parent_id': menu_company.id if menu_company else self.menu_id.id,
|
|
'website_id': self.id,
|
|
}
|
|
if idx == 0:
|
|
blog_menu = self.env['website.menu'].search([('url', '=', '/blog'), ('website_id', '=', self.id)])
|
|
blog_menu.write(blog_menu_values)
|
|
else:
|
|
self.env['website.menu'].create(blog_menu_values)
|
|
super().configurator_set_menu_links(menu_company, module_data)
|
|
|
|
def _search_get_details(self, search_type, order, options):
|
|
result = super()._search_get_details(search_type, order, options)
|
|
if search_type in ['blogs', 'blogs_only', 'all']:
|
|
result.append(self.env['blog.blog']._search_get_detail(self, order, options))
|
|
if search_type in ['blogs', 'blog_posts_only', 'all']:
|
|
result.append(self.env['blog.post']._search_get_detail(self, order, options))
|
|
return result
|