[FIX] calendar: handle inactive system language or missing date format

It is possible to select "System (English)" as chosen language,
or False in v12 or earlier versions.
However, if the language has not been activated,
then record_lang is an empty recordset, so record_lang.date_format is False,
(respectively time_format), and so the formatting crashes.

Note that if this happens, the calendar notification mechanism generates a crash
at each page load.

Instead we use get_lang which defaults to the most appropriate activated
language: the one given in argument if it exists, or the company one.

co-authored with @mart-e

closes odoo/odoo#38445

X-original-commit: 738214f00dff33389e7211ee73eae76b196b7844
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
This commit is contained in:
Nans Lefebvre
2019-10-11 01:16:04 +00:00
committed by fw-bot
parent 4ef3a14ea3
commit 609ff1f0fe
+2 -12
View File
@@ -684,18 +684,8 @@ class Meeting(models.Model):
""" get current date and time format, according to the context lang
:return: a tuple with (format date, format time)
"""
lang = self._context.get("lang")
lang_params = {}
if lang:
record_lang = self.env['res.lang']._lang_get(lang)
lang_params = {
'date_format': record_lang.date_format,
'time_format': record_lang.time_format
}
format_date = lang_params.get("date_format", '%B-%d-%Y')
format_time = lang_params.get("time_format", '%I-%M %p')
return (format_date, format_time)
lang = get_lang(self.env)
return (lang.date_format, lang.time_format)
@api.model
def _get_recurrent_fields(self):