changeset 78c41c370f88 in tryton:5.8
details: https://hg.tryton.org/tryton?cmd=changeset&node=78c41c370f88
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 9de1e575112f -r 78c41c370f88 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)
 

Reply via email to