[FIX] runbot_merge: disable autosave on boolean toggles

That's a bit of a weird one: apparently the boolean_toggle widget has
an `autosave` option which should be `true` by default, effecting the
row as soon as the toggle is toggled[^1]. But in 15.0 and 18.0 it
seems to have no effect, the `boolean_toggle` always just stores the
change in the parent form and that gets "committed on save.

In 16.0 and 17.0 however it does have an effect, toggling the control
will immediately save its value *without going through the parent
form*, resulting in the override to `Project.write` managing
new/existing branches to not be called, thus not calling
`Project_followup_prs`, and ultimately not creating the followup
forward ports.

After contacting AAB to get more info (and grepping a bit):

- autosave was added (enabled by default) in 16.0 after the owl
  rewrite (odoo/odoo@28e6b7eb83)
- toggle was added in 17.0
  (odoo/odoo@a449b05221)
- feature was removed in 18.0
  (odoo/odoo@6bd2c1fdfb)

Which explains why the issue occurs in 16.0 and 17.0, and not in 15.0
or 18.0.

Fixes #1051

[^1]: but apparently not going through the parent form...
This commit is contained in:
Xavier Morel 2025-02-12 12:48:44 +01:00
parent 0dd11acce8
commit 5bdeb04df2

View File

@ -70,8 +70,8 @@
<field name="sequence" widget="handle" />
<button type="object" name="get_formview_action" icon="fa-external-link" title="open branch"/>
<field name="name"/>
<field name="active" widget="boolean_toggle"/>
<field name="staging_enabled" widget="boolean_toggle"/>
<field name="active" widget="boolean_toggle" options="{'autosave': false}"/>
<field name="staging_enabled" widget="boolean_toggle" options="{'autosave': false}"/>
</tree>
</field>
</sheet>