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"}