From 88ed7093d2a3523c12f1f3a59e4cbef1aae4dcfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 26 Aug 2008 15:09:56 +0200 Subject: [PATCH] Use encoding_date for date/datetime format --- tryton/common/common.py | 12 ++++++++++++ .../gui/window/view_form/view/form_gtk/calendar.py | 7 ++++--- tryton/gui/window/view_form/view/graph_gtk/graph.py | 7 ++++--- tryton/gui/window/view_form/view/list_gtk/parser.py | 8 ++++---- .../gui/window/view_form/widget_search/calendar.py | 4 ++-- tryton/gui/window/view_tree/view_tree.py | 7 +++---- 6 files changed, 29 insertions(+), 16 deletions(-) diff --git a/tryton/common/common.py b/tryton/common/common.py index 6e674c4044..d40ec7a496 100644 --- a/tryton/common/common.py +++ b/tryton/common/common.py @@ -671,6 +671,18 @@ def node_attributes(node): result[attrs.item(i).localName] = eval(attrs.item(i).nodeValue) return result +def encoding_date(format): + format.replace('%y', '%Y') + for i in ('%a', '%A', '%j', '%w', '%W', '%Z'): + format = format.replace(i, '') + for i in ('%b', '%B'): + if i in format: + if '%m' not in format: + format = format.replace(i, '%m') + else: + format = format.replace(i, '') + return format + def hex2rgb(hexstring, digits=2): """ Converts a hexstring color to a rgb tuple. diff --git a/tryton/gui/window/view_form/view/form_gtk/calendar.py b/tryton/gui/window/view_form/view/form_gtk/calendar.py index 0ac104fad8..0f7a5103c0 100644 --- a/tryton/gui/window/view_form/view/form_gtk/calendar.py +++ b/tryton/gui/window/view_form/view/form_gtk/calendar.py @@ -6,7 +6,8 @@ import gettext import locale from interface import WidgetInterface import tryton.rpc as rpc -from tryton.common import DT_FORMAT, DHM_FORMAT, HM_FORMAT, message, TRYTON_ICON +from tryton.common import DT_FORMAT, DHM_FORMAT, HM_FORMAT, message, \ + TRYTON_ICON, encoding_date from _strptime import LocaleTime from tryton.common import date_widget @@ -19,7 +20,7 @@ class Calendar(WidgetInterface): def __init__(self, window, parent=None, model=None, attrs=None): super(Calendar, self).__init__(window, parent, model=model, attrs=attrs) - self.format = LocaleTime().LC_date.replace('%y', '%Y') + self.format = encoding_date(LocaleTime().LC_date) self.widget = date_widget.ComplexEntry(self.format, spacing=3) self.entry = self.widget.widget self.entry.set_property('activates_default', True) @@ -132,7 +133,7 @@ class DateTime(WidgetInterface): def __init__(self, window, parent, model, attrs=None): super(DateTime, self).__init__(window, parent, model, attrs=attrs) - self.format = LocaleTime().LC_date.replace('%y', '%Y') + ' ' + HM_FORMAT + self.format = encoding_date(LocaleTime().LC_date + ' ' + HM_FORMAT) self.widget = date_widget.ComplexEntry(self.format, spacing=3) self.entry = self.widget.widget self.entry.set_property('activates_default', True) diff --git a/tryton/gui/window/view_form/view/graph_gtk/graph.py b/tryton/gui/window/view_form/view/graph_gtk/graph.py index ac819d50cd..9ee196a9f2 100644 --- a/tryton/gui/window/view_form/view/graph_gtk/graph.py +++ b/tryton/gui/window/view_form/view/graph_gtk/graph.py @@ -1,6 +1,7 @@ #This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. import gtk -from tryton.common import hex2rgb, generateColorscheme, DT_FORMAT, COLOR_SCHEMES +from tryton.common import hex2rgb, generateColorscheme, DT_FORMAT, \ + COLOR_SCHEMES, encoding_date import locale import math import datetime @@ -366,8 +367,8 @@ class Graph(gtk.DrawingArea): while date <= end_date: key = datetime.date(date.year, date.month, date.day) self.labels[key] = time.strftime( - LocaleTime().LC_date.replace('%y', '%Y'), - time.strptime(str(key), DT_FORMAT)) + end_date(LocaleTime().LC_date), + time.strptime(str(key), DT_FORMAT)) self.datas.setdefault(key, {}) for yfield in self.yfields: self.datas[key].setdefault( diff --git a/tryton/gui/window/view_form/view/list_gtk/parser.py b/tryton/gui/window/view_form/view/list_gtk/parser.py index 6d840d9286..f0c012e63f 100644 --- a/tryton/gui/window/view_form/view/list_gtk/parser.py +++ b/tryton/gui/window/view_form/view/list_gtk/parser.py @@ -17,7 +17,8 @@ from tryton.gui.window.win_search import WinSearch import tryton.rpc as rpc import datetime as DT -from tryton.common import DT_FORMAT, DHM_FORMAT, COLORS, node_attributes, TRYTON_ICON +from tryton.common import DT_FORMAT, DHM_FORMAT, COLORS, node_attributes, \ + TRYTON_ICON, encoding_date import tryton.common as common from _strptime import LocaleTime from tryton.common.cellrendererbutton import CellRendererButton @@ -313,7 +314,7 @@ class Boolean(Int): class Date(Char): server_format = DT_FORMAT - display_format = LocaleTime().LC_date.replace('%y', '%Y') + display_format = encoding_date(LocaleTime().LC_date) def get_textual_value(self, model): value = model[self.field_name].get_client(model) @@ -339,8 +340,7 @@ class Date(Char): class Datetime(Date): server_format = DHM_FORMAT - display_format = LocaleTime().LC_date.replace('%y', '%Y') + \ - ' %H:%M:%S' + display_format = encoding_date(LocaleTime().LC_date + ' %H:%M:%S') def get_textual_value(self, model): value = model[self.field_name].get_client(model) diff --git a/tryton/gui/window/view_form/widget_search/calendar.py b/tryton/gui/window/view_form/widget_search/calendar.py index b230c2e94f..3231cc8e48 100644 --- a/tryton/gui/window/view_form/widget_search/calendar.py +++ b/tryton/gui/window/view_form/widget_search/calendar.py @@ -7,7 +7,7 @@ import locale from interface import Interface from tryton.common import DT_FORMAT from _strptime import LocaleTime -from tryton.common import date_widget +from tryton.common import date_widget, encoding_date _ = gettext.gettext @@ -20,7 +20,7 @@ class Calendar(Interface): tooltips = gtk.Tooltips() self.widget = gtk.HBox(spacing=3) - self.format = LocaleTime().LC_date.replace('%y', '%Y') + self.format = encoding_date(LocaleTime().LC_date) self.widget1 = date_widget.ComplexEntry(self.format, spacing=3) self.entry1 = self.widget1.widget diff --git a/tryton/gui/window/view_tree/view_tree.py b/tryton/gui/window/view_tree/view_tree.py index 167c5391a8..d79b05f7cf 100644 --- a/tryton/gui/window/view_tree/view_tree.py +++ b/tryton/gui/window/view_tree/view_tree.py @@ -9,7 +9,7 @@ import tryton.rpc as rpc from parse import Parse import datetime as DT import locale -from tryton.common import DT_FORMAT, DHM_FORMAT +from tryton.common import DT_FORMAT, DHM_FORMAT, encoding_date import tryton.common as common from _strptime import LocaleTime @@ -67,14 +67,13 @@ class ViewTreeModel(gtk.GenericTreeModel, gtk.TreeSortable): and 'widget' in self.fields_attrs[field]: field_type = self.fields_attrs[field]['widget'] if field_type in ('date',): - display_format = LocaleTime().LC_date.replace('%y', '%Y') + display_format = encoding_date(LocaleTime().LC_date) for obj in res_ids: if obj[field]: date = time.strptime(obj[field], DT_FORMAT) obj[field] = time.strftime(display_format, date) elif field_type in ('datetime',): - display_format = LocaleTime().LC_date.replace('%y', '%Y') \ - + ' %H:%M:%S' + display_format = encoding_date(LocaleTime().LC_date + ' %H:%M:%S') for obj in res_ids: if obj[field]: date = time.strptime(obj[field], DHM_FORMAT)