diff --git a/addons/base_automation/views/base_automation_views.xml b/addons/base_automation/views/base_automation_views.xml
index 89c38b58e5e..af6559a7be4 100644
--- a/addons/base_automation/views/base_automation_views.xml
+++ b/addons/base_automation/views/base_automation_views.xml
@@ -98,7 +98,12 @@
options="{'no_open': True, 'no_create': True}"
domain="[('model_id', '=', model_id)]"
context="{'hide_model': 1}"
- invisible="trigger not in ['on_create_or_write', 'on_change']" widget="many2many_tags" />
+ invisible="trigger != 'on_create_or_write'" widget="many2many_tags" />
+
diff --git a/addons/test_base_automation/static/tests/tour/base_automation_tour.js b/addons/test_base_automation/static/tests/tour/base_automation_tour.js
index e27985c7fb1..d63365b015b 100644
--- a/addons/test_base_automation/static/tests/tour/base_automation_tour.js
+++ b/addons/test_base_automation/static/tests/tour/base_automation_tour.js
@@ -628,4 +628,30 @@ registry.category("web_tour.tours").add("test_form_view_mail_triggers", {
run() {}
}
],
-});
\ No newline at end of file
+});
+
+registry.category("web_tour.tours").add('base_automation.on_change_rule_creation', {
+ test: true,
+ url: "/web#action=base_automation.base_automation_act",
+ steps: () => [
+ {
+ trigger: ".o-kanban-button-new",
+ }, {
+ trigger: ".o_field_widget[name=name] input",
+ run: "text Test rule",
+ }, {
+ trigger: ".o_field_widget[name=model_id] input",
+ run: "text ir.ui.view",
+ }, {
+ trigger: ".ui-menu-item > a:containsExact('View')",
+ }, {
+ trigger: ".o_field_widget[name=trigger] select",
+ run: 'text "on_change"',
+ }, {
+ trigger: ".o_field_widget[name=on_change_field_ids] input",
+ run: "text Active",
+ }, {
+ trigger: ".ui-menu-item > a:containsExact('Active')",
+ },
+ ...stepUtils.saveForm(),
+]});
diff --git a/addons/test_base_automation/tests/test_tour.py b/addons/test_base_automation/tests/test_tour.py
index 35ff86102b3..3090b3e74c5 100644
--- a/addons/test_base_automation/tests/test_tour.py
+++ b/addons/test_base_automation/tests/test_tour.py
@@ -293,3 +293,19 @@ class BaseAutomationTestUi(HttpCase):
"test_form_view_mail_triggers",
login="admin",
)
+
+ def test_on_change_rule_creation(self):
+ """ test on_change rule creation from the UI """
+ self.start_tour("/web#action=base_automation.base_automation_act", 'base_automation.on_change_rule_creation', login="admin")
+
+ rule = self.env['base.automation'].search([], order="create_date desc", limit=1)[0]
+ view_model = self.env['ir.model']._get("ir.ui.view")
+ active_field = self.env['ir.model.fields'].search([
+ ('name', '=', 'active'),
+ ('model', '=', 'ir.ui.view'),
+ ])[0]
+ self.assertEqual(rule.name, "Test rule")
+ self.assertEqual(rule.model_id, view_model)
+ self.assertEqual(rule.trigger, 'on_change')
+ self.assertEqual(len(rule.on_change_field_ids), 1)
+ self.assertEqual(rule.on_change_field_ids[0], active_field)