Includes: - Odoo 19 framework (odoo/) - 27 custom EnCoach addons (new_project/custom_addons/) - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media - encoach_courseware, encoach_communication, encoach_subscription - encoach_notification, encoach_approval, encoach_branding - encoach_classroom, encoach_registration, encoach_stats - encoach_faq, encoach_ticket, encoach_training, encoach_resources - encoach_adaptive_ai, encoach_sis - 21 OpenEduCat Enterprise modules (new_project/enterprise-19/) - 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/) - Configuration: odoo.conf, requirements.txt, scripts - 200+ REST API endpoints with JWT authentication - SRS and test documentation Made-with: Cursor
43 lines
1.8 KiB
Python
43 lines
1.8 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((_('Blog'), self.env['ir.http']._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
|