diff --git a/product/ERP5Type/ZopePatch.py b/product/ERP5Type/ZopePatch.py index 7e8b99e207c04e43594c101eab58207be70886e2..79b2f9783035151f8c96e1f49b30f02f664add7d 100644 --- a/product/ERP5Type/ZopePatch.py +++ b/product/ERP5Type/ZopePatch.py @@ -52,6 +52,7 @@ from Products.ERP5Type.patches import Connection from Products.ERP5Type.patches import copy_reg_patch from Products.ERP5Type.patches import PersistencePatch from Products.ERP5Type.patches import PersistentMapping +from Products.ERP5Type.patches import DateTimePatch # for python2.3 compatibility import threading diff --git a/product/ERP5Type/patches/DateTimePatch.py b/product/ERP5Type/patches/DateTimePatch.py new file mode 100644 index 0000000000000000000000000000000000000000..79784efc8465f030e395342b3b93c2c1fd2eae82 --- /dev/null +++ b/product/ERP5Type/patches/DateTimePatch.py @@ -0,0 +1,45 @@ +############################################################################## +# +# Copyright (c) 2007 Nexedi SARL and Contributors. All Rights Reserved. +# Vincent Pelletier <vincent@nexedi.com> +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +from DateTime import DateTime as DateTimeKlass + +STATE_KEY = 'str' + +def DateTime__setstate__(self, state): + if len(state) != 1 or STATE_KEY not in state: + # For backward compatibility + self.__dict__.update(state) + else: + self._parse_args(state[STATE_KEY]) + +DateTimeKlass.__setstate__ = DateTime__setstate__ + +def DateTime__getstate__(self): + return {STATE_KEY: str(self)} + +DateTimeKlass.__getstate__ = DateTime__getstate__