spreadsheet/models/res_lang.py

39 lines
1.4 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, models
from odoo.addons.spreadsheet.utils import (
strftime_format_to_spreadsheet_date_format,
strftime_format_to_spreadsheet_time_format,
)
class Lang(models.Model):
_inherit = "res.lang"
@api.model
def get_locales_for_spreadsheet(self):
"""Return the list of locales available for a spreadsheet."""
langs = self.with_context(active_test=False).search([])
spreadsheet_locales = [lang._odoo_lang_to_spreadsheet_locale() for lang in langs]
return spreadsheet_locales
@api.model
def _get_user_spreadsheet_locale(self):
"""Convert the odoo lang to a spreadsheet locale."""
lang = self._lang_get(self.env.user.lang)
return lang._odoo_lang_to_spreadsheet_locale()
def _odoo_lang_to_spreadsheet_locale(self):
"""Convert an odoo lang to a spreadsheet locale."""
return {
"name": self.name,
"code": self.code,
"thousandsSeparator": self.thousands_sep,
"decimalSeparator": self.decimal_point,
"dateFormat": strftime_format_to_spreadsheet_date_format(self.date_format),
"timeFormat": strftime_format_to_spreadsheet_time_format(self.time_format),
"formulaArgSeparator": ";" if self.decimal_point == "," else ",",
}