diff options
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/website/data/website_data.xml | 11 | ||||
| -rw-r--r-- | addons/website/models/ir_actions.py | 15 | ||||
| -rw-r--r-- | addons/website/models/ir_module_module.py | 6 | ||||
| -rw-r--r-- | addons/website/static/src/js/menu/new_content.js | 10 | ||||
| -rw-r--r-- | addons/website/static/src/js/tours/homepage.js | 1 | ||||
| -rw-r--r-- | addons/website/views/website_views.xml | 1 | ||||
| -rw-r--r-- | addons/website_blog/static/src/js/tours/website_blog.js | 3 | ||||
| -rw-r--r-- | addons/website_event/static/src/js/tours/website_event.js | 4 |
8 files changed, 46 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!=""]', |
