1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/documents_spreadsheet/models/spreadsheet_template.py
2024-12-10 09:04:09 +07:00

72 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models, _
class SpreadsheetTemplate(models.Model):
_name = "spreadsheet.template"
_inherit = "spreadsheet.mixin"
_description = "Spreadsheet Template"
_order = "sequence"
name = fields.Char(required=True, translate=True)
sequence = fields.Integer(default=100)
def copy(self, default=None):
self.ensure_one()
chosen_name = default.get("name") if default else None
new_name = chosen_name or _("%s (copy)", self.name)
default = dict(default or {}, name=new_name)
return super().copy(default)
def action_edit_template(self):
self.ensure_one()
return {
"type": "ir.actions.client",
"tag": "action_open_template",
"params": {
"spreadsheet_id": self.id,
},
}
def action_create_spreadsheet(self, document_vals=None):
if document_vals is None:
document_vals = {}
self.ensure_one()
spreadsheet = self.env["documents.document"].create({
"name": self.name,
"mimetype": "application/o-spreadsheet",
"handler": "spreadsheet",
"spreadsheet_data": self.spreadsheet_data,
**document_vals,
})
spreadsheet.spreadsheet_snapshot = self.spreadsheet_snapshot
self._copy_revisions_to(spreadsheet)
update_locale_command = {
"type": "UPDATE_LOCALE",
"locale": self.env["res.lang"]._get_user_spreadsheet_locale(),
}
spreadsheet._dispatch_command(update_locale_command)
return {
"type": "ir.actions.client",
"tag": "action_open_spreadsheet",
"params": {
"spreadsheet_id": spreadsheet.id,
"convert_from_template": True,
},
}
def action_edit(self):
self.ensure_one()
return {
'type': 'ir.actions.client',
'tag': 'action_open_template',
'params': {
'spreadsheet_id': self.id,
}
}
def _creation_msg(self):
return _("New spreadsheet template created")