TIP: You can type at any time to perform a new search.
Website Theme Install
website_theme_install · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Hidden
- Folder size
- 0.88 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- None
- Last tracking update
- 2026-08-07 05:12:45
- Authors
- Maintainers
- None
- Committers
- Raphael Collet, Christophe Simonis, Martin Trigaux, Odoo Translation Bot, Denis Ledoux, Damien Bouvy, qsm-odoo, Romain Derie, RomainLibert, Adrian Torres, Xavier-Do, David Tran, Sébastien Theys, Naglis Jonaitis, Thanh Dodeur, fja-odoo
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- theme_bootswatch, theme_default
- Description
Code Analysis ⓘ
Views touched (7)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
customize_modal |
customize_modal | ir.ui.view | qweb | Inherits website.theme_customize |
onboarding_website_theme_step |
onboarding_website_theme_step | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.website_theme_install | res.config.settings | form | Inherits website.res_config_settings_view_form |
theme_view_kanban |
Themes Kanban | ir.module.module | kanban | New |
theme_view_search |
Themes Search | ir.module.module | search | New |
view_website_form_view_themes_modal |
website.form | website | form | Inherits website.view_website_form |
website_theme_install_assets |
Website Theme Install Assets | ir.ui.view | qweb | Inherits web.assets_backend |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (13)
New fields (2)
-
keyCharcopy=False -
theme_template_idMany2one → theme.ir.attachmentcopy=False args: 'theme.ir.attachment'
No public methods.
New fields (2)
-
image_idsOne2many → ir.attachmentdomain=[('res_model', '=', _name), ('mimetype', '=like', 'image/%')]readonly=Truestring='Screenshots' args: 'ir.attachment', 'res_id' -
is_installed_on_current_websiteBooleancompute='_compute_is_installed_on_current_website'
-
button_choose_theme(self)Remove any existing theme on the current website and install the theme ``self`` instead. The actual loading of the theme on the current website will be done automatically on ``write`` thanks to the upgrade and/or install. When installating a new theme, upgrade the upstream chain first to make sure we have the latest version of the dependencies to prevent inconsistencies. :return: dict with the next action to execute -
button_refresh_theme(self)Refresh the current theme of the current website. To refresh it, we only need to upgrade the modules. Indeed the (re)loading of the theme will be done automatically on ``write``. -
button_remove_theme(self)Remove the current theme of the current website. -
update_list(self)@api.model -
write(self, vals)Override to correctly upgrade themes after upgrade/installation of modules. # Install If this theme wasn't installed before, then load it for every website for which it is in the stream. eg. The very first installation of a theme on a website will trigger this. eg. If a website uses theme_A and we install sale, then theme_A_sale will be autoinstalled, and in this case we need to load theme_A_sale for the website. # Upgrade There are 2 cases to handle when upgrading a theme: * When clicking on the theme upgrade button on the interface, in which case there will be an http request made. -> We want to upgrade the current website only, not any other. * When upgrading with -u, in which case no request should be set. -> We want to upgrade every website using this theme.
New fields (1)
-
theme_template_idMany2one → theme.ir.ui.viewcopy=False args: 'theme.ir.ui.view'
-
write(self, vals)
New fields (1)
-
website_theme_onboarding_doneBooleancompute='_compute_website_theme_onboarding_done' args: 'Onboarding website theme step done'
-
action_open_website_theme_selector(self)@api.model
New fields (0)
No new fields.
Public methods (2)-
action_website_create_new(self) -
install_theme_on_current_website(self)
New fields (4)
-
copy_idsOne2many → ir.attachmentcopy=Falsereadonly=True args: 'ir.attachment', 'theme_template_id', 'Attachment using a copy of me' -
keyCharrequired=True -
nameCharrequired=True -
urlChar
No public methods.
New fields (10)
-
activeBooleandefault=True -
archTexttranslate=xml_translate -
arch_fsChardefault=compute_arch_fs -
copy_idsOne2many → ir.ui.viewcopy=Falsereadonly=True args: 'ir.ui.view', 'theme_template_id', 'Views using a copy of me' -
inherit_idReferenceselection=[('ir.ui.view', 'ir.ui.view'), ('theme.ir.ui.view', 'theme.ir.ui.view')] -
keyChar -
modeSelectionargs: [('primary', 'Base view'), ('extension', 'Extension View')] -
nameCharrequired=True -
priorityIntegerdefault=16required=True -
typeChar
-
compute_arch_fs(self)
New fields (0)
No new fields.
Public methods (2)-
disable_view(self, xml_id)@api.model -
enable_view(self, xml_id)@api.model
New fields (7)
-
copy_idsOne2many → website.menucopy=Falsereadonly=True args: 'website.menu', 'theme_template_id', 'Menu using a copy of me' -
nameCharrequired=Truetranslate=True -
new_windowBooleanargs: 'New Window' -
page_idMany2one → theme.website.pageondelete='cascade' args: 'theme.website.page' -
parent_idMany2one → theme.website.menuindex=Trueondelete='cascade' args: 'theme.website.menu' -
sequenceInteger -
urlChardefault=''
No public methods.
New fields (4)
-
copy_idsOne2many → website.pagecopy=Falsereadonly=True args: 'website.page', 'theme_template_id', 'Page using a copy of me' -
urlChar -
view_idMany2one → theme.ir.ui.viewondelete='cascade'required=True args: 'theme.ir.ui.view' -
website_indexedBooleandefault=True args: 'Page Indexed'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
create_and_redirect_to_theme(self, vals)@api.model
New fields (1)
-
theme_template_idMany2one → theme.website.menucopy=False args: 'theme.website.menu'
No public methods.
New fields (1)
-
theme_template_idMany2one → theme.website.pagecopy=False args: 'theme.website.page'
No public methods.
Loading…
Loading…
Loading…
Loading…