19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:30:53 +01:00
parent dc68f80d3f
commit 7221b9ac46
610 changed files with 135477 additions and 161677 deletions

View file

@ -1,23 +1,25 @@
/** @odoo-module */
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_utils";
import tour from 'web_tour.tour';
tour.register('create_crm_team_tour', {
url: "/web",
test: true,
}, [
...tour.stepUtils.goToAppSteps('crm.crm_menu_root'),
registry.category("web_tour.tours").add('create_crm_team_tour', {
url: "/odoo",
steps: () => [
...stepUtils.goToAppSteps('crm.crm_menu_root'),
{
trigger: 'button[data-menu-xmlid="crm.crm_menu_config"]',
run: "click",
}, {
trigger: 'a[data-menu-xmlid="crm.crm_team_config"]',
run: "click",
}, {
trigger: 'button.o_list_button_add',
run: "click",
}, {
trigger: 'input[id="name"]',
run: 'text My CRM Team',
trigger: 'input[id="name_0"]',
run: "edit My CRM Team",
}, {
trigger: 'button.o-kanban-button-new',
trigger: '.btn.o-kanban-button-new',
run: "click",
}, {
trigger: 'div.modal-dialog tr:contains("Test Salesman") input.form-check-input',
run: 'click',
@ -26,9 +28,11 @@ tour.register('create_crm_team_tour', {
run: 'click',
}, {
trigger: 'div.modal-dialog tr:contains("Test Sales Manager") input.form-check-input:checked',
run: () => {},
}, {
trigger: '.o_selection_box:contains(2)',
}, {
trigger: 'button.o_select_button',
},
...tour.stepUtils.saveForm()
]);
run: "click",
},
...stepUtils.saveForm()
]});

View file

@ -1,56 +1,25 @@
odoo.define('crm.crm_email_and_phone_propagation', function (require) {
'use strict';
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_utils";
const tour = require('web_tour.tour');
tour.register('crm_email_and_phone_propagation_edit_save', {
test: true,
url: '/web',
}, [
tour.stepUtils.showAppsMenuItem(),
registry.category("web_tour.tours").add('crm_email_and_phone_propagation_edit_save', {
url: '/odoo',
steps: () => [
stepUtils.showAppsMenuItem(),
{
trigger: '.o_app[data-menu-xmlid="crm.crm_menu_root"]',
content: 'open crm app',
run: "click",
}, {
trigger: '.o_kanban_record .o_kanban_record_title span:contains(Test Lead Propagation)',
trigger: '.o_kanban_record:contains(Test Lead Propagation)',
content: 'Open the first lead',
run: 'click',
}, {
trigger: '.o_form_button_save',
extra_trigger: '.o_form_editable .o_field_widget[name=email_from] input',
},
{
trigger: ".o_form_editable .o_field_widget[name=email_from] input",
},
{
trigger: ".o_form_button_save:not(:visible)",
content: 'Save the lead',
run: 'click',
},
]);
tour.register('crm_email_and_phone_propagation_remove_email_and_phone', {
test: true,
url: '/web',
}, [
tour.stepUtils.showAppsMenuItem(),
{
trigger: '.o_app[data-menu-xmlid="crm.crm_menu_root"]',
content: 'open crm app',
}, {
trigger: '.o_kanban_record .o_kanban_record_title span:contains(Test Lead Propagation)',
content: 'Open the first lead',
run: 'click',
}, {
trigger: '.o_form_editable .o_field_widget[name=email_from] input',
extra_trigger: '.o_form_editable .o_field_widget[name=phone] input',
content: 'Remove the email and the phone',
run: function (action) {
action.remove_text("", ".o_form_editable .o_field_widget[name=email_from] input");
action.remove_text("", ".o_form_editable .o_field_widget[name=phone] input");
},
}, {
trigger: '.o_back_button',
// wait the warning message to be visible
extra_trigger: '.o_form_sheet_bg .fa-exclamation-triangle:not(.o_invisible_modifier)',
content: 'Save the lead and exit to kanban',
run: 'click',
},{
trigger: '.o_kanban_renderer',
}
]);
});
]});

View file

@ -1,15 +1,15 @@
/** @odoo-module */
import tour from 'web_tour.tour';
const today = moment();
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_utils";
const today = luxon.DateTime.now();
tour.register('crm_forecast', {
test: true,
url: "/web",
}, [
tour.stepUtils.showAppsMenuItem(),
registry.category("web_tour.tours").add('crm_forecast', {
url: "/odoo",
steps: () => [
stepUtils.showAppsMenuItem(),
{
trigger: ".o_app[data-menu-xmlid='crm.crm_menu_root']",
content: "open crm app",
run: "click",
}, {
trigger: '.dropdown-toggle[data-menu-xmlid="crm.crm_menu_report"]',
content: 'Open Reporting menu',
@ -19,8 +19,8 @@ tour.register('crm_forecast', {
content: 'Open Forecast menu',
run: 'click',
}, {
trigger: '.o_column_quick_create:contains(Add next month)',
content: 'Wait page loading'
trigger: '.o_column_quick_create',
content: 'Wait page loading',
}, {
trigger: ".o-kanban-button-new",
content: "click create",
@ -28,69 +28,66 @@ tour.register('crm_forecast', {
}, {
trigger: ".o_field_widget[name=name] input",
content: "complete name",
run: "text Test Opportunity 1",
run: "edit Test Opportunity 1",
}, {
trigger: ".o_field_widget[name=expected_revenue] input",
content: "complete expected revenue",
run: "text 999999",
run: "edit 999999",
}, {
trigger: "button.o_kanban_edit",
content: "edit lead",
run: "click",
}, {
trigger: "div[name=date_deadline] button",
content: "open date picker",
run: "click",
}, {
trigger: "div[name=date_deadline] input",
content: "complete expected closing",
run: `text ${today.format("MM/DD/YYYY")}`,
run: `edit ${today.toFormat("MM/dd/yyyy")}`,
}, {
trigger: "div[name=date_deadline] input",
content: "click to make the datepicker disappear",
run: "click"
}, {
trigger: "body:not(:has(div.bootstrap-datetimepicker-widget))",
content: "wait for date_picker to disappear",
run: function () {},
}, {
trigger: '.o_back_button',
content: 'navigate back to the kanban view',
position: "bottom",
tooltipPosition: "bottom",
run: "click"
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Opportunity 1')",
trigger: ".o_kanban_record:contains('Test Opportunity 1')",
content: "move to the next month",
run: function (actions) {
const undefined_groups = $('.o_column_title:contains("None")').length;
actions.drag_and_drop_native(`.o_opportunity_kanban .o_kanban_group:eq(${1 + undefined_groups})`, this.$anchor);
async run({ queryAll, drag_and_drop }) {
const undefined_groups = queryAll('.o_column_title:contains("None")').length;
await drag_and_drop(`.o_opportunity_kanban .o_kanban_group:eq(${1 + undefined_groups})`);
},
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Opportunity 1')",
trigger: ".o_kanban_record:contains('Test Opportunity 1')",
content: "edit lead",
run: "click"
}, {
trigger: "div[name=date_deadline] button",
content: "open date picker",
run: "click",
}, {
trigger: ".o_field_widget[name=date_deadline] input",
content: "complete expected closing",
run: function (actions) {
actions.text(`text ${moment(today).add(5, 'months').startOf('month').subtract(1, 'days').format("MM/DD/YYYY")}`, this.$anchor);
this.$anchor[0].dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Escape" }));
},
run: `edit ${today.plus({ months: 5 }).startOf("month").minus({ days: 1 }).toFormat("MM/dd/yyyy")} && press Escape`,
}, {
trigger: "body:not(:has(div.bootstrap-datetimepicker-widget))",
content: "wait for date_picker to disappear",
run: function () {},
}, {
trigger: ".o_field_widget[name=probability] input",
content: "max out probability",
run: "text 100"
trigger: "button[name=action_set_won_rainbowman]",
content: "win the lead",
run:"click"
}, {
trigger: '.o_back_button',
content: 'navigate back to the kanban view',
position: "bottom",
tooltipPosition: "bottom",
run: "click"
}, {
trigger: '.o_kanban_add_column',
trigger: '.o_column_quick_create.o_quick_create_folded div',
content: "add next month",
run: "click"
}, {
trigger: ".o_kanban_record:contains('Test Opportunity 1'):contains('Won')",
content: "assert that the opportunity has the Won banner",
run: function () {},
}
]);
]});

View file

@ -1,87 +1,119 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_utils";
import tour from 'web_tour.tour';
tour.register('crm_rainbowman', {
test: true,
url: "/web",
}, [
tour.stepUtils.showAppsMenuItem(),
registry.category("web_tour.tours").add("crm_rainbowman", {
url: "/odoo",
steps: () => [
stepUtils.showAppsMenuItem(),
{
trigger: ".o_app[data-menu-xmlid='crm.crm_menu_root']",
content: "open crm app",
}, {
trigger: ".o-kanban-button-new",
run: "click",
},
{
trigger: "body:has(.o_kanban_renderer) .o-kanban-button-new",
content: "click create",
}, {
run: "click",
},
{
trigger: ".o_field_widget[name=name] input",
content: "complete name",
run: "text Test Lead 1",
}, {
run: "edit Test Lead 1",
},
{
trigger: ".o_field_widget[name=expected_revenue] input",
content: "complete expected revenue",
run: "text 999999997",
}, {
run: "edit 999999997",
},
{
trigger: "button.o_kanban_add",
content: "create lead",
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Lead 1')",
run: "click",
},
{
trigger: ".o_kanban_record:contains('Test Lead 1')",
content: "move to won stage",
run: "drag_and_drop_native .o_opportunity_kanban .o_kanban_group:has(.o_column_title:contains('Won')) "
}, {
run: "drag_and_drop (.o_opportunity_kanban .o_kanban_group:has(.o_column_title:contains('Won')))",
},
{
trigger: ".o_reward_rainbow",
extra_trigger: ".o_reward_rainbow",
run: function () {} // check rainbowman is properly displayed
}, {
},
{
// This step and the following simulates the fact that after drag and drop,
// from the previous steps, a click event is triggered on the window element,
// which closes the currently shown .o_kanban_quick_create.
trigger: ".o_kanban_renderer",
}, {
run: "click",
},
{
trigger: ".o_kanban_renderer:not(:has(.o_kanban_quick_create))",
run() {},
}, {
},
{
trigger: ".o-kanban-button-new",
content: "create second lead",
}, {
run: "click",
},
{
trigger: ".o_field_widget[name=name] input",
content: "complete name",
run: "text Test Lead 2",
}, {
run: "edit Test Lead 2",
},
{
trigger: ".o_field_widget[name=expected_revenue] input",
content: "complete expected revenue",
run: "text 999999998",
}, {
run: "edit 999999998",
},
{
trigger: "button.o_kanban_add",
content: "create lead",
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Lead 2')",
run: function () {} // wait for the record to be properly created
}, {
run: "click",
},
{
trigger: ".o_kanban_record:contains('Test Lead 2')",
},
{
// move first test back to new stage to be able to test rainbowman a second time
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Lead 1')",
trigger: ".o_kanban_record:contains('Test Lead 1')",
content: "move back to new stage",
run: "drag_and_drop .o_opportunity_kanban .o_kanban_group:eq(0) "
}, {
trigger: ".o_kanban_record .o_kanban_record_title:contains('Test Lead 2')",
run: "drag_and_drop .o_opportunity_kanban .o_kanban_group:eq(0) ",
},
{
trigger: ".o_kanban_record:contains('Test Lead 2')",
content: "click on second lead",
}, {
run: "click",
},
{
trigger: ".o_statusbar_status button[data-value='4']",
content: "move lead to won stage",
run: "click",
},
{
content: "wait for save completion",
trigger: ".o_form_readonly, .o_form_saved",
},
{
trigger: ".o_reward_rainbow",
},
...tour.stepUtils.saveForm(),
{
trigger: ".o_statusbar_status button[data-value='1']",
extra_trigger: ".o_reward_rainbow",
content: "move lead to previous stage & rainbowman appears",
}, {
run: "click",
},
{
trigger: "button[name=action_set_won_rainbowman]",
content: "click button mark won",
run: "click",
},
{
content: "wait for save completion",
trigger: ".o_form_readonly, .o_form_saved",
},
{
trigger: ".o_reward_rainbow",
},
...tour.stepUtils.saveForm(),
{
trigger: ".o_menu_brand",
extra_trigger: ".o_reward_rainbow",
content: "last rainbowman appears",
}
]);
},
],
});