changeset 2348b69957e7 in tryton:5.0
details: https://hg.tryton.org/tryton?cmd=changeset&node=2348b69957e7
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 e9a14ac46061 -r 2348b69957e7 tryton/common/datetime_.py
--- a/tryton/common/datetime_.py        Thu Apr 22 07:56:09 2021 +0200
+++ b/tryton/common/datetime_.py        Wed Apr 28 22:26:52 2021 +0200
@@ -17,6 +17,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_)
@@ -186,7 +194,7 @@
             self.__date = value
             self.update_label()
         elif prop.name == 'format':
-            self.__format = value
+            self.__format = _fix_format(value)
             self.update_label()
 
     def do_get_property(self, prop):
@@ -215,7 +223,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)
 
@@ -336,7 +344,7 @@
             self.__time = value
             self.update_label()
         elif prop.name == 'format':
-            self.__format = value
+            self.__format = _fix_format(value)
             self.update_label()
             self.update_model()
 
@@ -366,7 +374,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