diff --git a/addons/sale/static/src/js/tour.js b/addons/sale/static/src/js/tour.js
index 86267073fdd..da11aa59e15 100644
--- a/addons/sale/static/src/js/tour.js
+++ b/addons/sale/static/src/js/tour.js
@@ -6,7 +6,9 @@ var tour = require('web_tour.tour');
var _t = core._t;
-tour.register('sale_tour', [{
+tour.register('sale_tour', {
+ url: "/web",
+}, [tour.STEPS.MENU_MORE, {
trigger: '.o_app[data-menu-xmlid="sales_team.menu_base_partner"], .oe_menu_toggler[data-menu-xmlid="sales_team.menu_base_partner"]',
content: _t('Organize your sales activities with the Sales app.'),
position: 'bottom',
@@ -14,10 +16,51 @@ tour.register('sale_tour', [{
trigger: ".oe_kanban_action_button",
extra_trigger: '.o_salesteam_kanban',
content: _t("Let\'s have a look at the quotations of this sales team."),
- position: "bottom"
+ position: "bottom",
+ id: "quotation_button_on_dashboard",
}, {
- trigger: ".btn-primary.o_sale_confirm",
- extra_trigger: '.o_sale_order',
+ trigger: ".o_list_button_add",
+ extra_trigger: ".o_sale_order",
+ content: _t("Let's create a new quotation.
Note that colored buttons usually points to the next logical actions in any screen."),
+ position: "right",
+}, {
+ trigger: ".o_form_required input",
+ extra_trigger: ".o_sale_order",
+ content: _t("Write the name of your customer to create one on the fly, or select an existing one."),
+ position: "top",
+ run: "text Agrolait",
+}, {
+ trigger: ".ui-menu-item > a",
+ auto: true,
+ in_modal: false,
+}, {
+ trigger: ".o_form_field_x2many_list_row_add > a",
+ extra_trigger: ".o_sale_order",
+ content: _t("Click here to add some lines to your quotations."),
+ position: "bottom",
+}, {
+ trigger: ".modal-body .o_form_required input, .o_list_editable .o_form_required input",
+ extra_trigger: ".o_sale_order",
+ content: _t("Select a product, or create a new one on the fly. The product will define the default sale price (that you can change), taxes and description automatically."),
+ position: "right",
+ run: "text Ipad",
+}, {
+ trigger: ".ui-menu-item > a",
+ auto: true,
+ in_modal: false,
+ run: function (actions) {
+ actions.auto();
+ actions.auto(".modal-footer .btn-primary");
+ },
+ id: "quotation_product_selected",
+}, {
+ trigger: ".o_form_button_save",
+ extra_trigger: ".o_sale_order",
+ content: _t("Once your quotation is ready, you can save, print or send it by email."),
+ position: "right",
+}, {
+ trigger: ".o_sale_confirm",
+ extra_trigger: ".o_sale_order.o_form_readonly",
content: _t("
Confirm the order if the customer purchases.
The customer can also confirm the order directly from the email he received.
"), position: "bottom" }, { @@ -30,12 +73,8 @@ tour.register('sale_tour', [{ content: _t("Use this menu to access quotations, sales orders and customers."), edition: "enterprise", position: "bottom" -}, { - trigger: ".o_main_navbar .o_menu_toggle", - content: _t('Click the Home icon to navigate across apps.'), - edition: "enterprise", - position: "bottom" -}, { +}, tour.STEPS.TOGGLE_APPSWITCHER, +tour.STEPS.MENU_MORE, { trigger: '.o_app[data-menu-xmlid="base.menu_administration"], .oe_menu_toggler[data-menu-xmlid="base.menu_administration"]', content: _t("Configuration options are available in the Settings app."), position: "bottom" diff --git a/addons/sale/tests/__init__.py b/addons/sale/tests/__init__.py index 563d5a51a7f..6d02f09727c 100644 --- a/addons/sale/tests/__init__.py +++ b/addons/sale/tests/__init__.py @@ -3,3 +3,4 @@ import test_sale_to_invoice import test_sale_order from . import test_product_id_change +import test_sale_ui diff --git a/addons/sale/tests/test_sale_ui.py b/addons/sale/tests/test_sale_ui.py new file mode 100644 index 00000000000..7db363187dd --- /dev/null +++ b/addons/sale/tests/test_sale_ui.py @@ -0,0 +1,9 @@ +import odoo.tests +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +@odoo.tests.common.at_install(False) +@odoo.tests.common.post_install(True) +class TestUi(odoo.tests.HttpCase): + + def test_01_sale_tour(self): + self.phantom_js("/web", "odoo.__DEBUG__.services['web_tour.tour'].run('sale_tour')", "odoo.__DEBUG__.services['web_tour.tour'].tours.sale_tour.ready", login="admin") diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml index 992d2f96aa4..b1eca864190 100644 --- a/addons/sale/views/sale_views.xml +++ b/addons/sale/views/sale_views.xml @@ -128,7 +128,7 @@Create a Quotation, the first step of a new sale.
- Your next actions should flow efficiently: confirm the Quotation + Your next actions should flow efficiently: confirm the Quotation to a Sale Order, then create the Invoice and collect the Payment.
- Note that once a Quotation becomes a Sale Order, it will be moved + Note that once a Quotation becomes a Sale Order, it will be moved from the Quotations list to the Sales Order list.
Create a Quotation, the first step of a new sale.
- Your next actions should flow efficiently: confirm the Quotation + Your next actions should flow efficiently: confirm the Quotation to a Sale Order, then create the Invoice and collect the Payment.
- Note that once a Quotation becomes a Sale Order, it will be moved + Note that once a Quotation becomes a Sale Order, it will be moved from the Quotations list to the Sales Order list.
diff --git a/addons/sale/views/sales_team_views.xml b/addons/sale/views/sales_team_views.xml index 8b3c6f7bf82..ff64ed99fb7 100644 --- a/addons/sale/views/sales_team_views.xml +++ b/addons/sale/views/sales_team_views.xml @@ -83,14 +83,14 @@