Is there a way to set the text displayed in each state for a boolean button?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
not in the default code... but you can extend the widget your self...
by default:
active: Active/Inactive
archive: Active/Archive
prod_environment: Product/Test
by default : On/Off
via the option "terminology"
<field name="active" widget="boolean_button" options='{"terminology": "archive"}'/>
UPDATE:
Here a sample of code to do it... https://github.com/odoo-dev/odoo/commit/e43ec89ec5e6a4e2cc43bad31e3452f130210acb
Thank you. This is great. Looks perfect. I will try it out ASAP.
Hi, I'm having a bit of difficulty using your example.
My code is:
odoo.define("custom_boolean_button.FieldBooleanButton", function (require) {
"use strict";
var form_widgets = require("web.form_widgets");
form_widgets.FieldBooleanButton.include({
init: function() {
this._super.apply(this, arguments);
switch (this.options["terminology"]) {
case "active":
this.string_true = _t("Active");
this.hover_true = _t("Deactivate");
this.string_false = _t("Inactive");
this.hover_false = _t("Activate");
break;
case "archive":
this.string_true = _t("Not Archived");
this.hover_true = _t("Archive");
this.string_false = _t("Archived");
this.hover_false = _t("Unarchive");
break;
case "custom":
if (this.options["terminology_values"]) {
var terms = this.options["terminology_values"];
this.string_true = _t(terms.string_true); this.hover_true = _t(terms.hover_true);
this.string_false = _t(terms.string_false);
this.hover_false = _t(terms.hover_false);
break;
}
default:
this.string_true = _t("On");
this.hover_true = _t("Switch Off");
this.string_false = _t("Off");
this.hover_false = _t("Switch On");
}
},
});
});
I get the error:
TypeError: Cannot read property 'include' of undefined
You can simply add the options
options="{'terminology':{
'string_true': 'verify',
'hover_true': 'verify',
'string_false': 'Unverify',
'hover_false': 'Unverify'
}}"
Then It will display Verify/Unverify on button.
Eg.
<button name="toggle_verify" type="object" class="oe_stat_button test" icon="fa-check">
<field name="verify" widget="boolean_button" options="{'terminology':{
'string_true': 'verify',
'hover_true': 'verify',
'string_false': 'Unverify',
'hover_false': 'Unverify'
}}"/>
</button>
I used the solution provided by Jeremy and would just like to add that the terminology does not work if you have the field as a checkbox in the same view. The button will just display the checkbox. Remove the checkbox from the view and it works.
<field name="your_boolean_field" nolabel="1"/>
<label attrs="{'invisible':[('your_boolean_field', '=', False)]}">
Checked
</label><label attrs="{'invisible':[('Your_boolean_field','=',True)]}">
Not Checked
</label>
Thanks for the reply. I'm sorry if I wasn't clear enough in my post. I'm actually looking for a way to change the strings displayed by the boolean_button widget. It has to be the widget because I'm using it to trigger a call to reload_on_button. I appreciate your reply, which would be otherwise totally workable.
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
2
Feb 23
|
1611 | ||
|
2
Apr 19
|
8741 | ||
|
1
May 19
|
6161 | ||
|
0
Oct 16
|
16837 | ||
|
1
Jan 24
|
12762 |