From 2b46bf26be2baf52e78c40d1c4defda674932deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre=20=28lul=29?= Date: Wed, 8 Nov 2023 13:14:02 +0000 Subject: [PATCH] [FIX] spreadsheet_dashboard: copy dashboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit is the communitiy counter-part to allow copying a dashboard. Yet another 'copy' overrride to add the same postfix! closes odoo/odoo#144091 Task: 3588237 X-original-commit: b39f63b1509e6dc2149b1a09da5a877d45e36be3 Signed-off-by: Rémi Rahir (rar) Signed-off-by: Lucas Lefèvre (lul) --- .../models/spreadsheet_dashboard.py | 10 +++++++++- .../tests/test_spreadsheet_dashboard.py | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/addons/spreadsheet_dashboard/models/spreadsheet_dashboard.py b/addons/spreadsheet_dashboard/models/spreadsheet_dashboard.py index 6f332e06636..4a8c30e9fe6 100644 --- a/addons/spreadsheet_dashboard/models/spreadsheet_dashboard.py +++ b/addons/spreadsheet_dashboard/models/spreadsheet_dashboard.py @@ -1,6 +1,6 @@ import json -from odoo import fields, models +from odoo import _, fields, models class SpreadsheetDashboard(models.Model): @@ -24,3 +24,11 @@ class SpreadsheetDashboard(models.Model): 'snapshot': snapshot, 'revisions': [], } + + def copy(self, default=None): + self.ensure_one() + if default is None: + default = {} + if 'name' not in default: + default['name'] = _("%s (copy)") % self.name + return super().copy(default=default) diff --git a/addons/spreadsheet_dashboard/tests/test_spreadsheet_dashboard.py b/addons/spreadsheet_dashboard/tests/test_spreadsheet_dashboard.py index c6c47d348ea..d44be21a031 100644 --- a/addons/spreadsheet_dashboard/tests/test_spreadsheet_dashboard.py +++ b/addons/spreadsheet_dashboard/tests/test_spreadsheet_dashboard.py @@ -22,6 +22,22 @@ class TestSpreadsheetDashboard(DashboardTestCommon): dashboard._empty_spreadsheet_data() ) + def test_copy_name(self): + group = self.env["spreadsheet.dashboard.group"].create( + {"name": "a group"} + ) + dashboard = self.env["spreadsheet.dashboard"].create( + { + "name": "a dashboard", + "dashboard_group_id": group.id, + } + ) + copy = dashboard.copy() + self.assertEqual(copy.name, "a dashboard (copy)") + + copy = dashboard.copy({"name": "a copy"}) + self.assertEqual(copy.name, "a copy") + def test_unlink_prevent_spreadsheet_group(self): group = self.env["spreadsheet.dashboard.group"].create( {"name": "a_group"}