[Erp5-report] r41463 nicolas - /erp5/trunk/products/Formulator/Widget.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Dec 15 16:46:27 CET 2010
Author: nicolas
Date: Wed Dec 15 16:46:27 2010
New Revision: 41463
URL: http://svn.erp5.org?rev=41463&view=rev
Log:
Works only if @text:formula contains the number of day since 30/12/1899
Modified:
erp5/trunk/products/Formulator/Widget.py
Modified: erp5/trunk/products/Formulator/Widget.py
URL: http://svn.erp5.org/erp5/trunk/products/Formulator/Widget.py?rev=41463&r1=41462&r2=41463&view=diff
==============================================================================
--- erp5/trunk/products/Formulator/Widget.py [utf8] (original)
+++ erp5/trunk/products/Formulator/Widget.py [utf8] Wed Dec 15 16:46:27 2010
@@ -1533,7 +1533,16 @@ class DateTimeWidget(Widget):
if not value and field.get_value('default_now'):
value = DateTime()
text_node = Element('{%s}%s' % (TEXT_URI, local_name), nsmap=NSMAP)
- attr_dict['{%s}date-value' % OFFICE_URI] = value.strftime('%Y-%m-%d %H:%M:%S')
+ # http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#dateTime
+ attr_dict['{%s}date-value' % OFFICE_URI] = value.ISO8601()
+ # According http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Calc:_Date_%26_Time_functions
+ # default offset is 30/12/1899
+ number_of_second_in_day = 86400 #24 * 60 * 60
+ timestamp = float(value)
+ # XXX Works only if the timezone is the same in OpenOffice
+ ooo_offset_timestamp = float(DateTime(1899, 12, 30))
+ days_value = (timestamp - ooo_offset_timestamp) / number_of_second_in_day
+ attr_dict['{%s}formula' % TEXT_URI] = 'ooow:%f' % days_value
text_node.attrib.update(attr_dict)
if as_string:
return etree.tostring(text_node)
More information about the Erp5-report
mailing list