summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/website/data/website_data.xml11
-rw-r--r--addons/website/models/ir_actions.py15
-rw-r--r--addons/website/models/ir_module_module.py6
-rw-r--r--addons/website/static/src/js/menu/new_content.js10
-rw-r--r--addons/website/static/src/js/tours/homepage.js1
-rw-r--r--addons/website/views/website_views.xml1
-rw-r--r--addons/website_blog/static/src/js/tours/website_blog.js3
-rw-r--r--addons/website_event/static/src/js/tours/website_event.js4
-rw-r--r--odoo/addons/base/views/base_menus.xml1
9 files changed, 47 insertions, 5 deletions
diff --git a/addons/website/data/website_data.xml b/addons/website/data/website_data.xml
index dc477e723f6..548c3428ff6 100644
--- a/addons/website/data/website_data.xml
+++ b/addons/website/data/website_data.xml
@@ -240,8 +240,17 @@
<field name="url">/</field>
<field name="target">self</field>
</record>
+ <record id="action_website_edit" model="ir.actions.act_url">
+ <!--
+ be aware, this record has been added just after the 14.0
+ freeze and could be missing on first installed db.
+ -->
+ <field name="name">Website Edit Mode</field>
+ <field name="url">/?enable_editor=1</field>
+ <field name="target">self</field>
+ </record>
<record id="base.open_menu" model="ir.actions.todo">
- <field name="action_id" ref="action_website"/>
+ <field name="action_id" ref="action_website_edit"/>
<field name="state">open</field>
</record>
diff --git a/addons/website/models/ir_actions.py b/addons/website/models/ir_actions.py
index 24fbc937514..305820503c7 100644
--- a/addons/website/models/ir_actions.py
+++ b/addons/website/models/ir_actions.py
@@ -60,3 +60,18 @@ class ServerAction(models.Model):
"""
res = super(ServerAction, self)._run_action_code_multi(eval_context)
return eval_context.get('response', res)
+
+
+class IrActionsTodo(models.Model):
+ _name = 'ir.actions.todo'
+ _inherit = 'ir.actions.todo'
+
+ def action_launch(self):
+ res = super().action_launch() # do ensure_one()
+
+ if self.id == self.env.ref('website.theme_install_todo').id:
+ # Pick a theme consume all ir.actions.todo by default (due to lower sequence).
+ # Once done, we re-enable the main ir.act.todo: open_menu
+ self.env.ref('base.open_menu').action_open()
+
+ return res
diff --git a/addons/website/models/ir_module_module.py b/addons/website/models/ir_module_module.py
index ff843663161..9ec53dcc519 100644
--- a/addons/website/models/ir_module_module.py
+++ b/addons/website/models/ir_module_module.py
@@ -360,7 +360,11 @@ class IrModuleModule(models.Model):
# this will install 'self' if it is not installed yet
self._theme_upgrade_upstream()
- return website.button_go_website(mode_edit=True)
+ active_todo = self.env['ir.actions.todo'].search([('state', '=', 'open')], limit=1)
+ if active_todo:
+ return active_todo.action_launch()
+ else:
+ return website.button_go_website(mode_edit=True)
def button_remove_theme(self):
"""Remove the current theme of the current website."""
diff --git a/addons/website/static/src/js/menu/new_content.js b/addons/website/static/src/js/menu/new_content.js
index e52801bd123..13de4a27794 100644
--- a/addons/website/static/src/js/menu/new_content.js
+++ b/addons/website/static/src/js/menu/new_content.js
@@ -5,6 +5,7 @@ var core = require('web.core');
var Dialog = require('web.Dialog');
var websiteNavbarData = require('website.navbar');
var wUtils = require('website.utils');
+var tour = require('web_tour.tour');
var qweb = core.qweb;
var _t = core._t;
@@ -56,6 +57,15 @@ var NewContentMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({
this.$lastLink = this.$newContentMenuChoices.find('a:last');
if ($.deparam.querystring()[enableFlag] !== undefined) {
+ Object.keys(tour.tours).forEach(
+ el => {
+ let element = tour.tours[el];
+ if (element.steps[0].trigger == '#new-content-menu > a'
+ && !element.steps[0].extra_trigger) {
+ element.steps[0].auto = true;
+ }
+ }
+ );
this._showMenu();
}
return this._super.apply(this, arguments);
diff --git a/addons/website/static/src/js/tours/homepage.js b/addons/website/static/src/js/tours/homepage.js
index f7da2401ed1..56d40a0d42e 100644
--- a/addons/website/static/src/js/tours/homepage.js
+++ b/addons/website/static/src/js/tours/homepage.js
@@ -8,6 +8,7 @@ var _t = core._t;
tour.register("homepage", {
url: "/",
+ sequence: 1010,
}, [{
trigger: "a[data-action=edit]",
content: _t("<b>Click Edit</b> to start designing your homepage."),
diff --git a/addons/website/views/website_views.xml b/addons/website/views/website_views.xml
index 9ce2f21b28d..2cf4a1e2f11 100644
--- a/addons/website/views/website_views.xml
+++ b/addons/website/views/website_views.xml
@@ -443,6 +443,7 @@
</record>
<record id="theme_install_todo" model="ir.actions.todo">
+ <field name="name">Go to theme</field>
<field name="action_id" ref="theme_install_act_url"/>
<field name="sequence">0</field>
</record>
diff --git a/addons/website_blog/static/src/js/tours/website_blog.js b/addons/website_blog/static/src/js/tours/website_blog.js
index 6f071fe178f..4a443036279 100644
--- a/addons/website_blog/static/src/js/tours/website_blog.js
+++ b/addons/website_blog/static/src/js/tours/website_blog.js
@@ -10,8 +10,9 @@ odoo.define("website_blog.tour", function (require) {
url: "/",
}, [{
trigger: '#new-content-menu > a',
- auto: true,
+ content: _t("Click here to add new content on your website."),
position: 'bottom',
+
}, {
trigger: "a[data-action=new_blog_post]",
content: _t("Select this menu item to create a new blog post."),
diff --git a/addons/website_event/static/src/js/tours/website_event.js b/addons/website_event/static/src/js/tours/website_event.js
index 3f704012527..0fc530bef46 100644
--- a/addons/website_event/static/src/js/tours/website_event.js
+++ b/addons/website_event/static/src/js/tours/website_event.js
@@ -9,8 +9,8 @@ odoo.define("website_event.tour", function (require) {
tour.register("event", {
url: "/",
}, [{
+ content: _t("Click here to add new content on your website."),
trigger: '#new-content-menu > a',
- auto: true,
position: 'bottom',
}, {
trigger: "a[data-action=new_event]",
@@ -19,7 +19,7 @@ odoo.define("website_event.tour", function (require) {
}, {
trigger: '.modal-dialog #editor_new_event input[type=text]',
content: _t("Create a name for your new event and click <em>\"Continue\"</em>. e.g: Technical Training"),
- position: "right",
+ position: "left",
}, {
trigger: '.modal-footer button.btn-primary.btn-continue',
extra_trigger: '#editor_new_event input[type=text][value!=""]',
diff --git a/odoo/addons/base/views/base_menus.xml b/odoo/addons/base/views/base_menus.xml
index 077eaa71e86..a2ed6b88f73 100644
--- a/odoo/addons/base/views/base_menus.xml
+++ b/odoo/addons/base/views/base_menus.xml
@@ -40,6 +40,7 @@
<field name="params" eval="{'menu_id': ref('base.menu_administration')}"/>
</record>
<record id="open_menu" model="ir.actions.todo">
+ <field name="name">Open Menu</field>
<field name="action_id" ref="action_client_base_menu"/>
<field name="sequence">100</field>
<field name="state">done</field>