summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome hanke (jhk) <jhk@odoo.com>2020-05-07 08:12:30 +0000
committerNicolas Lempereur <nle@odoo.com>2020-05-14 10:04:17 +0000
commitac9fb3b120b37d27e8bb2db4188decffa23540b9 (patch)
treed39857d38faabcda7ded09ab739f5b093e0bd44e
parentdbd87ec4648a18ebf3eb79e11214cf0ee5d1f5d2 (diff)
[FIX] base: prevent selecting unsupported "action types" in scheduled actions
Currently, scheduled Actions only work if you choose "Python Code" as the action type ("Action To Do"). Other action types are not really supported as they work "record-wise" (using active_ids) which makes no sense for scheduled actions. We should help users avoid surprises by hiding the "Action To Do" field on scheduled actions, and default to "Python Code" implicitly. Example steps to reproduce : - go to scheduled actions > create a new action - select "Execute several actions" as action to do - add several actions to execute - run this action => the sub-actions were not executed opw-2227082 closes odoo/odoo#51242 X-original-commit: b19c7c54efceb780806d876efc65a8813e3491d1 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
-rw-r--r--odoo/addons/base/models/ir_cron.py7
-rw-r--r--odoo/addons/base/views/ir_actions_views.xml2
-rw-r--r--odoo/addons/base/views/ir_cron_views.xml5
3 files changed, 12 insertions, 2 deletions
diff --git a/odoo/addons/base/models/ir_cron.py b/odoo/addons/base/models/ir_cron.py
index 818a8e70d5d..a9c2a6ee6ca 100644
--- a/odoo/addons/base/models/ir_cron.py
+++ b/odoo/addons/base/models/ir_cron.py
@@ -70,6 +70,13 @@ class ir_cron(models.Model):
values['usage'] = 'ir_cron'
return super(ir_cron, self).create(values)
+ @api.model
+ def default_get(self, fields_list):
+ # only 'code' state is supported for cron job so set it as default
+ if not self._context.get('default_state'):
+ self = self.with_context(default_state='code')
+ return super(ir_cron, self).default_get(fields_list)
+
def method_direct_trigger(self):
self.check_access_rights('write')
for cron in self:
diff --git a/odoo/addons/base/views/ir_actions_views.xml b/odoo/addons/base/views/ir_actions_views.xml
index 4de186e287f..5cccc2d526f 100644
--- a/odoo/addons/base/views/ir_actions_views.xml
+++ b/odoo/addons/base/views/ir_actions_views.xml
@@ -256,7 +256,7 @@
help="Remove 'More' top-menu contextual action related to this action"/>
<button name="run" string="Run" type="object"
class="btn-primary"
- attrs="{'invisible':[('model_id', '!=', %(base.model_ir_actions_server)s)]}"
+ attrs="{'invisible':['|', ('model_id', '!=', %(base.model_ir_actions_server)s), ('state', '!=', 'code')]}"
help="Run this action manually."/>
</header>
<sheet>
diff --git a/odoo/addons/base/views/ir_cron_views.xml b/odoo/addons/base/views/ir_cron_views.xml
index 3ffcdd565e3..a4e3aa3e39a 100644
--- a/odoo/addons/base/views/ir_cron_views.xml
+++ b/odoo/addons/base/views/ir_cron_views.xml
@@ -8,7 +8,7 @@
<field name="inherit_id" ref="base.view_server_action_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='create_action']" position="replace">
- <button name="method_direct_trigger" type="object" string="Run Manually" class="oe_highlight"/>
+ <button name="method_direct_trigger" type="object" string="Run Manually" class="oe_highlight" attrs="{'invisible': [('state', '!=', 'code')]}"/>
</xpath>
<xpath expr="//button[@name='unlink_action']" position="replace">
</xpath>
@@ -27,6 +27,9 @@
<field name="priority"/>
<field name="doall"/>
</xpath>
+ <field name="state" position="attributes">
+ <attribute name="invisible">1</attribute>
+ </field>
</field>
</record>