summaryrefslogtreecommitdiff
path: root/addons/website_theme_install/views/views.xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_theme_install/views/views.xml')
-rw-r--r--addons/website_theme_install/views/views.xml71
1 files changed, 71 insertions, 0 deletions
diff --git a/addons/website_theme_install/views/views.xml b/addons/website_theme_install/views/views.xml
new file mode 100644
index 00000000000..6e89a39d7be
--- /dev/null
+++ b/addons/website_theme_install/views/views.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Custom module kanban : install button (even if already installed) which redirects to website after (fake or not) installation + live preview button -->
+ <record model="ir.ui.view" id="theme_view_kanban">
+ <field name="name">Themes Kanban</field>
+ <field name="model">ir.module.module</field>
+ <field name="arch" type="xml">
+ <kanban create="false" class="o_theme_kanban" default_order="sequence,name">
+ <field name="icon"/>
+ <field name="name"/>
+ <field name="state"/>
+ <field name="url"/>
+ <field name="image_ids"/>
+ <templates>
+ <div t-name="kanban-box">
+ <t t-set="has_screenshot" t-value="record.image_ids.raw_value.length > 0"/>
+ <div t-if="has_screenshot" class="o_screenshot" t-attf-style="background-image: url(web/image/#{record.image_ids.raw_value[0]});"/>
+ <div t-if="!has_screenshot" t-attf-style="background-image: url(#{record.icon.value});"/>
+ <div class="o_button_area">
+ <button type="object" name="button_choose_theme" states="uninstalled" class="btn btn-primary btn-sm">Install</button>
+ <button type="action" name="website.action_website_tutorial" states="installed" class="btn btn-primary btn-sm">Install</button>
+ <a t-if="record.url.value" class="btn btn-sm btn-primary" t-att-href="record.url.value" target="_blank">Live Preview</a>
+ </div>
+ </div>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="theme_view_search">
+ <field name="name">Themes Search</field>
+ <field name="model">ir.module.module</field>
+ <field name="arch" type="xml">
+ <search>
+ <field name="name" filter_domain="['|', '|', ('summary', 'ilike', self), ('shortdesc', 'ilike', self), ('name', 'ilike', self)]" string="Theme"/>
+ <group>
+ <filter string="Author" domain="[]" context="{'group_by':'author'}"/>
+ <filter string="Category" domain="[]" context="{'group_by':'category_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <!-- Actions to list themes with custom kanban (launched on module installation) -->
+ <record id="theme_install_kanban_action" model="ir.actions.act_window">
+ <field name="name">Choose Your Theme</field>
+ <field name="res_model">ir.module.module</field>
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="theme_view_kanban"/>
+ <field name="search_view_id" ref="theme_view_search"/>
+ <field name="domain">[
+ '|', ('category_id', '!=', 'Hidden'), ('name', '=', 'theme_default'),
+ '|', ('category_id', '=', 'Theme'), ('category_id.parent_id', '=', 'Theme')
+ ]</field>
+ </record>
+ <record id="theme_install_todo_action" model="ir.actions.server">
+ <field name="name">Choose Your Theme Todo Action</field>
+ <field name="model_id" ref="model_ir_module_module"/>
+ <field name="code">
+self.update_list(cr, uid, context=context)
+action = {
+ 'type': 'ir.actions.act_url',
+ 'url': '/web?reload#action=website_theme_install.theme_install_kanban_action', # the ?reload option is there to fool the webclient into thinking it is a different location and so to force a reload
+ 'target': 'self',
+}
+ </field>
+ </record>
+ <record id="theme_install_todo" model="ir.actions.todo">
+ <field name="action_id" ref="theme_install_todo_action"/>
+ <field name="type">automatic</field>
+ </record>
+</odoo>