From now, when you install a theme, it load the data from xml to template table theme [ir.ui.view|ir.attachment|website.page|website.menu]. Data are only copied from this template table into the real table when you choose a theme on a website; Making them website_specific and with a link to the original to allow futur update. A special case is done to create theme.ir.ui.view when you are installing a theme, even if you continue to use template tag to create quick view. Co-authored-by: Derie Romain <rde@odoo.com> Co-authored-by: Kersten Jérémy <jke@odoo.com>
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
from ast import literal_eval
|
|
|
|
|
|
class ResCompany(models.Model):
|
|
_inherit = 'res.company'
|
|
|
|
def _compute_website_theme_onboarding_done(self):
|
|
""" The step is marked as done if one theme is installed. """
|
|
# we need the same domain as the existing action
|
|
action = self.env.ref('website_theme_install.theme_install_kanban_action').read()[0]
|
|
domain = literal_eval(action['domain'])
|
|
domain.append(('state', '=', 'installed'))
|
|
installed_themes_count = self.env['ir.module.module'].sudo().search_count(domain)
|
|
for record in self:
|
|
record.website_theme_onboarding_done = (installed_themes_count > 0)
|
|
|
|
website_theme_onboarding_done = fields.Boolean("Onboarding website theme step done",
|
|
compute='_compute_website_theme_onboarding_done')
|
|
|
|
@api.model
|
|
def action_open_website_theme_selector(self):
|
|
action = self.env.ref('website_theme_install.theme_install_kanban_action').read()[0]
|
|
action['target'] = 'new'
|
|
return action
|