diff --git a/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.esm.js b/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.esm.js
index 34083c4b9425..8311a470df75 100644
--- a/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.esm.js
+++ b/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.esm.js
@@ -3,19 +3,47 @@
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
import {ListRenderer} from "@web/views/list/list_renderer";
+import {onWillRender} from "@odoo/owl";
import {patch} from "@web/core/utils/patch";
import {serializeDate, serializeDateTime} from "@web/core/l10n/dates";
+import {exprToBoolean} from "@web/core/utils/strings";
+import {browser} from "@web/core/browser/browser";
patch(ListRenderer.prototype, {
setup() {
super.setup(...arguments);
const parent = this.__owl__.parent.parent;
- this.displayDuplicateLine =
+ const key = this.createViewKey();
+ this.keyDuplicateLineColumn = `duplicate_line_column,${key}`;
+ this.duplicateLineAllowed =
parent &&
parent.props &&
parent.props.fieldInfo &&
parent.props.fieldInfo.options &&
parent.props.fieldInfo.options.allow_clone;
+ this.displayDuplicateLine =
+ this.duplicateLineAllowed && this.duplicateLineColumn;
+ onWillRender(() => {
+ this.duplicateLineColumn = exprToBoolean(
+ browser.localStorage.getItem(this.keyDuplicateLineColumn),
+ false
+ );
+ this.displayDuplicateLine =
+ this.duplicateLineAllowed && this.duplicateLineColumn;
+ });
+ },
+ toggleDuplicateLineColumn() {
+ this.duplicateLineColumn = !this.duplicateLineColumn;
+ browser.localStorage.setItem(
+ this.keyDuplicateLineColumn,
+ this.duplicateLineColumn
+ );
+ this.displayDuplicateLine =
+ this.duplicateLineAllowed && this.duplicateLineColumn;
+ this.render();
+ },
+ get hasActionsColumn() {
+ return super.hasActionsColumn || Boolean(this.duplicateLineAllowed);
},
async onCloneIconClick(record) {
const toSkip = this.getFieldsToSkip();
diff --git a/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.xml b/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.xml
index daa56a33ce54..7ad14dbc4aa2 100644
--- a/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.xml
+++ b/web_widget_one2many_tree_line_duplicate/static/src/list/list_renderer.xml
@@ -16,6 +16,33 @@
style="width: 32px; min-width: 32px"
/>
+
+
+
+
+
+
+
+ Duplicate Line Button
+
+
+
+
+
-