diff options
Diffstat (limited to 'addons/website_theme_install/views/views.xml')
| -rw-r--r-- | addons/website_theme_install/views/views.xml | 71 |
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> |
