changeset f587c4bee161 in tryton:5.6 details: https://hg.tryton.org/tryton?cmd=changeset&node=f587c4bee161 description: Ensure zero padding for year
It is needed to parse it back as a full year and not a year in current century. issue10343 review346051003 (grafted from d77748324d8d7fe285377f94605b9ad24ad8116d) diffstat: tryton/common/datetime_.py | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diffs (54 lines): diff -r 3368e556c73e -r f587c4bee161 tryton/common/datetime_.py --- a/tryton/common/datetime_.py Fri Apr 23 11:53:48 2021 +0200 +++ b/tryton/common/datetime_.py Wed Apr 28 22:26:52 2021 +0200 @@ -15,6 +15,14 @@ _ = gettext.gettext +def _fix_format(format_): + if '%Y' in format_: + if (datetime.date.min.strftime('%Y') != '0001' + and datetime.date.min.strftime('%4Y') == '0001'): + format_ = format_.replace('%Y', '%4Y') + return format_ + + def date_parse(text, format_='%x'): try: return datetime.datetime.strptime(text, format_) @@ -191,7 +199,7 @@ self.update_label() self.emit('date-changed') elif prop.name == 'format': - self.__format = value + self.__format = _fix_format(value) self.update_label() def do_get_property(self, prop): @@ -222,7 +230,7 @@ def do_set_property(self, prop, value): if prop.name == 'format': - self.__format = value + self.__format = _fix_format(value) return Gtk.CellRendererText.set_property(self, prop, value) @@ -362,7 +370,7 @@ self.update_label() self.emit('time-changed') elif prop.name == 'format': - self.__format = value + self.__format = _fix_format(value) self.update_label() self.update_model() @@ -394,7 +402,7 @@ def do_set_property(self, prop, value): if prop.name == 'format': - self.__format = value + self.__format = _fix_format(value) return Gtk.CellRendererText.set_property(self, prop, value)