Files
odoo_source/addons/website_theme_install/views/views.xml
T
qsm-odoo 3ecf2fbc7e [FIX] website_theme_install: review customization dialog message
The priority was set to a low value while it was meant to be a high
value. Indeed, we want that if that template is active, the customize
modal is emptied no matter what, so it has to be called last.

This is to have an understandable behavior if our code fails to mark the
template as inactive on a theme installation. With this commit, the
customization dialog will be empty. Without this commit, it gives an
error which can lead to think we made a mistake writing the theme's own
customization dialog while it was in fact inheriting from an emptied
dialog.
2018-09-19 10:24:00 +02:00

142 lines
7.9 KiB
XML

<?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="state,sequence,name">
<field name="icon"/>
<field name="name"/>
<field name="state"/>
<field name="url"/>
<field name="image_ids"/>
<field name="category_id"/>
<field name="display_name"/>
<field name="is_installed_on_current_website"/>
<templates>
<div t-name="kanban-box" t-attf-class="o_theme_preview mb16 mt16 #{record.is_installed_on_current_website.raw_value? 'o_theme_installed' : ''}">
<t t-set="has_image" t-value="record.image_ids.raw_value.length > 0"/>
<t t-set="has_screenshot" t-value="record.image_ids.raw_value.length > 1"/>
<t t-set="image_url" t-value="has_image ? 'web/image/' + record.image_ids.raw_value[0] : record.icon.value"/>
<div class="o_theme_preview_top bg-white mb4">
<div class="o_browser_bar">
<i states="installed" t-if="record.is_installed_on_current_website.raw_value" class="text-center ml4 img-circle fa fa-check-circle" role="img" aria-label="Installed" title="Installed"/>
</div>
<div t-attf-class="bg-gray-lighter #{has_screenshot? 'o_theme_screenshot' : (has_image ? 'o_theme_cover' : 'o_theme_logo')}" t-attf-style="background-image: url(#{image_url});"/>
<div t-if="record.is_installed_on_current_website.raw_value" class="o_button_area">
<button type="object" name="button_refresh_theme" class="btn btn-primary">Update theme</button>
<hr />
<button type="object" name="button_remove_theme" class="btn btn-secondary">Remove theme</button>
</div>
<div t-else="" class="o_button_area">
<button type="object" name="button_choose_theme" class="btn btn-primary">Use this theme</button>
<hr t-if="record.url.value"/>
<a role="button" t-if="record.url.value" class="btn btn-secondary" t-att-href="record.url.value" target="_blank">Live Preview</a>
</div>
</div>
<div class="o_theme_preview_bottom clearfix">
<h5 t-if="record.display_name.value" class="text-uppercase float-left">
<img class="float-left mr4" t-att-src="record.icon.value" height="16" width="16" alt="Theme preview"/>
<b><t t-esc="record.display_name.value.replace(('Theme'), '').replace(('theme'), '')"/></b>
</h5>
<h6 t-if="record.category_id.value" class="text-muted float-right">
<b><t t-esc="record.category_id.value"/></b>
</h6>
</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="priority">50</field>
<field name="arch" type="xml">
<search>
<field name="name" filter_domain="['|', '|', ('summary', 'ilike', self), ('shortdesc', 'ilike', self), ('name', 'ilike', self)]" string="Theme"/>
<field name="category_id" filter_domain="['|', '|', ('summary', 'ilike', self), ('shortdesc', 'ilike', self), ('category_id', 'ilike', self)]" string="Category"/>
<group>
<filter string="Author" name="author" domain="[]" context="{'group_by':'author'}"/>
<filter string="Category" name="category" domain="[]" context="{'group_by':'category_id'}"/>
</group>
</search>
</field>
</record>
<!-- themes should be installed through website_theme_install -->
<record id="base.open_module_tree" model="ir.actions.act_window">
<field name="domain">['!', ('name', '=like', 'theme_%')]</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 a theme for your website</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" eval="[
('category_id', 'not in', [ref('base.module_category_hidden', False), ref('base.module_category_theme_hidden', False)]),
'|', ('category_id', '=', ref('base.module_category_theme', False)), ('category_id.parent_id', '=', ref('base.module_category_theme', False))
]"/>
</record>
<record id="theme_install_todo_action" model="ir.actions.server">
<field name="name">Config: Choose Your Theme</field>
<field name="model_id" ref="model_ir_module_module"/>
<field name="state">code</field>
<field name="code">
model.update_list()
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="sequence">0</field>
</record>
<!-- Add link to theme install in default customize modal -->
<template id="customize_modal" inherit_id="website.theme_customize" priority="99">
<xpath expr="//div" position="replace">
<div>
Please <a href="/web#action=website_theme_install.theme_install_kanban_action">install a theme</a> to customize your website.
</div>
</xpath>
</template>
<record id="view_website_form_view_themes_modal" model="ir.ui.view">
<field name="name">website.form</field>
<field name="model">website</field>
<field name="inherit_id" ref="website.view_website_form"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//form" position='inside'>
<footer>
<button name="create_and_redirect_to_theme" type="object" string="Choose a theme" class="ml-2 btn btn-primary" icon="fa-paint-brush"/>
<button string="Cancel" class="btn btn-default" special="cancel"/>
</footer>
</xpath>
</field>
</record>
<!-- ONBOARDING -->
<template id="onboarding_website_theme_step">
<t t-call="base.onboarding_step">
<t t-set="title">Website Theme</t>
<t t-set="description">Select a theme for your website.</t>
<t t-set="btn_text">Let's start!</t>
<t t-set="method" t-value="'action_open_website_theme_selector'" />
<t t-set="model" t-value="'res.company'" />
<t t-set="done" t-value="company.website_theme_onboarding_done" />
</t>
</template>
</odoo>