[MOV] spreadsheet: extract empty spreadsheet utils

The empty spreadsheet data structure is reused (see Enterprise PR #34567)

So we extract it to a function.

closes odoo/odoo#106975

Related: odoo/enterprise#34567
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
This commit is contained in:
Lucas Lefèvre
2022-12-14 18:33:04 +01:00
parent 9f748a61e4
commit a28cc1cdd4
2 changed files with 29 additions and 20 deletions
+26
View File
@@ -0,0 +1,26 @@
import json
import base64
from odoo import _
def empty_spreadsheet_data_base64():
"""Create an empty spreadsheet workbook.
Encoded as base64
"""
data = json.dumps(empty_spreadsheet_data())
return base64.b64encode(data.encode())
def empty_spreadsheet_data():
"""Create an empty spreadsheet workbook.
The sheet name should be the same for all users to allow consistent references
in formulas. It is translated for the user creating the spreadsheet.
"""
return {
"version": 1,
"sheets": [
{
"id": "sheet1",
"name": _("Sheet1"),
}
]
}
@@ -3,6 +3,8 @@ import json
from odoo import api, fields, models, _
from odoo.addons.spreadsheet.utils import empty_spreadsheet_data_base64
class SpreadsheetDashboard(models.Model):
_name = 'spreadsheet.dashboard'
_description = 'Spreadsheet Dashboard'
@@ -10,31 +12,12 @@ class SpreadsheetDashboard(models.Model):
name = fields.Char(required=True)
dashboard_group_id = fields.Many2one('spreadsheet.dashboard.group', required=True)
data = fields.Binary(required=True, default=lambda self: self._default_data())
data = fields.Binary(required=True, default=lambda self: empty_spreadsheet_data_base64())
raw = fields.Binary(compute='_compute_raw')
thumbnail = fields.Binary()
sequence = fields.Integer()
group_ids = fields.Many2many('res.groups', default=lambda self: self.env.ref('base.group_user'))
def _default_data(self):
data = json.dumps(self._empty_workbook_data())
return base64.b64encode(data.encode())
def _empty_workbook_data(self):
"""Create an empty spreadsheet workbook.
The sheet name should be the same for all users to allow consistent references
in formulas. It is translated for the user creating the spreadsheet.
"""
return {
"version": 1,
"sheets": [
{
"id": "sheet1",
"name": _("Sheet1"),
}
]
}
@api.depends('data')
def _compute_raw(self):
for dashboard in self: