This commit introduces models related to sharing dashboard, and implements the sharing from dashboard view. The basic idea is the same as sharing normal spreadsheet. The major difference is that sharing a dashboard will direct to the dashboard view instead of read-only spreadsheet view. A button and a side panel which shows the global filters show up only in the dashboard view. task 3378150 closes odoo/odoo#127370 Related: odoo/enterprise#43664 Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Lucas Lefèvre <lul@odoo.com>
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from .common import DashboardTestCommon
|
|
from odoo.exceptions import AccessError
|
|
|
|
EXCEL_FILES = [
|
|
{
|
|
"content": '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"/>',
|
|
"path": "[Content_Types].xml",
|
|
}
|
|
]
|
|
|
|
class DashboardSharing(DashboardTestCommon):
|
|
def test_share_url(self):
|
|
dashboard = self.create_dashboard()
|
|
share_vals = {
|
|
"spreadsheet_data": dashboard.spreadsheet_data,
|
|
"dashboard_id": dashboard.id,
|
|
"excel_files": EXCEL_FILES,
|
|
}
|
|
url = self.env["spreadsheet.dashboard.share"].action_get_share_url(share_vals)
|
|
share = self.env["spreadsheet.dashboard.share"].search(
|
|
[("dashboard_id", "=", dashboard.id)]
|
|
)
|
|
self.assertEqual(url, share.full_url)
|
|
self.assertEqual(share.dashboard_id, dashboard)
|
|
self.assertTrue(share.excel_export)
|
|
|
|
def test_can_create_own(self):
|
|
dashboard = self.create_dashboard()
|
|
with self.with_user(self.user.login):
|
|
share = self.share_dashboard(dashboard)
|
|
|
|
self.assertTrue(share)
|
|
self.assertTrue(share.create_uid, self.user)
|
|
|
|
def test_cannot_read_others(self):
|
|
dashboard = self.create_dashboard()
|
|
share = self.share_dashboard(dashboard)
|
|
with self.assertRaises(AccessError):
|
|
share.with_user(self.user).access_token
|