From 1e7dbe9dbbc56deea0defd3452011b1731064ec6 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 15 Jul 2014 14:44:39 -0400 Subject: [PATCH 1/4] currency_rate_update: fix wrong use of timetuple. - remove error "TypeError: argument must be 9-item sequence, not datetime.datetime" --- currency_rate_update/currency_rate_update.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/currency_rate_update/currency_rate_update.py b/currency_rate_update/currency_rate_update.py index 4f9bc8808..1b22de90c 100644 --- a/currency_rate_update/currency_rate_update.py +++ b/currency_rate_update/currency_rate_update.py @@ -119,13 +119,14 @@ class Currency_rate_update(osv.Model): _name = "currency.rate.update" _description = "Currency Rate Update" # Dict that represent a cron object + nextcall_time = (datetime.today() + timedelta(days=1)).timetuple() + nextcall = time.strftime("%Y-%m-%d %H:%M:%S", nextcall_time) cron = { 'active': False, 'priority': 1, 'interval_number': 1, 'interval_type': 'weeks', - 'nextcall': time.strftime("%Y-%m-%d %H:%M:%S", - datetime.today() + timedelta(days=1)).timetuple(), + 'nextcall': nextcall, 'numbercall': -1, 'doall': True, 'model': 'currency.rate.update', From 801d6274b32b8832f81972b19ec68a84f314570a Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 15 Jul 2014 15:48:37 -0400 Subject: [PATCH 2/4] currency_rate_update: use date format of openerp.tools. - DEFAULT_SERVER_DATETIME_FORMAT and DEFAULT_SERVER_DATE_FORMAT --- currency_rate_update/currency_rate_update.py | 24 +++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/currency_rate_update/currency_rate_update.py b/currency_rate_update/currency_rate_update.py index 1b22de90c..0b99ed7b9 100644 --- a/currency_rate_update/currency_rate_update.py +++ b/currency_rate_update/currency_rate_update.py @@ -36,7 +36,9 @@ import logging import time -from datetime import datetime, timedelta +from datetime import datetime +from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT from openerp.osv import fields, osv, orm from openerp.tools.translate import _ @@ -119,8 +121,8 @@ class Currency_rate_update(osv.Model): _name = "currency.rate.update" _description = "Currency Rate Update" # Dict that represent a cron object - nextcall_time = (datetime.today() + timedelta(days=1)).timetuple() - nextcall = time.strftime("%Y-%m-%d %H:%M:%S", nextcall_time) + nextcall_time = datetime.today() + timedelta(days=1) + nextcall = nextcall_time.strftime(DEFAULT_SERVER_DATETIME_FORMAT) cron = { 'active': False, 'priority': 1, @@ -220,7 +222,7 @@ class Currency_rate_update(osv.Model): main_curr, service.max_delta_days ) - rate_name = time.strftime('%Y-%m-%d') + rate_name = time.strftime(DEFAULT_SERVER_DATE_FORMAT) for curr in service.currency_to_update: if curr.name == main_curr: continue @@ -245,12 +247,12 @@ class Currency_rate_update(osv.Model): # Show the most recent note at the top msg = "%s \n%s currency updated. %s" % \ (log_info or '', - datetime.strftime(datetime.today(), '%Y-%m-%d %H:%M:%S'), + datetime.strftime(datetime.today(), DEFAULT_SERVER_DATETIME_FORMAT), note) service.write({'note': msg}) except Exception as exc: error_msg = "\n%s ERROR : %s %s" %\ - (datetime.strftime(datetime.today(), '%Y-%m-%d %H:%M:%S'), + (datetime.strftime(datetime.today(), DEFAULT_SERVER_DATETIME_FORMAT), repr(exc), note) _logger.info(repr(exc)) @@ -398,8 +400,8 @@ class Curreny_getter_interface(object): ) # We always have a warning when rate_date != today - rate_date_str = datetime.strftime(rate_date, '%Y-%m-%d') - if rate_date_str != datetime.strftime(datetime.today(), '%Y-%m-%d'): + rate_date_str = datetime.strftime(rate_date, DEFAULT_SERVER_DATE_FORMAT) + if rate_date_str != datetime.strftime(datetime.today(), DEFAULT_SERVER_DATE_FORMAT): msg = "The rate timestamp (%s) is not today's date" self.log_info = ("WARNING : %s %s") % (msg, rate_date_str) _logger.warning(msg, rate_date_str) @@ -459,7 +461,7 @@ class Admin_ch_getter(Curreny_getter_interface): _logger.debug("Admin.ch sent a valid XML file") adminch_ns = {'def': 'http://www.afd.admin.ch/publicdb/newdb/mwst_kurse'} rate_date = dom.xpath('/def:wechselkurse/def:datum/text()', namespaces=adminch_ns)[0] - rate_date_datetime = datetime.strptime(rate_date, '%Y-%m-%d') + rate_date_datetime = datetime.strptime(rate_date, DEFAULT_SERVER_DATE_FORMAT) self.check_rate_date(rate_date_datetime, max_delta_days) # we dynamically update supported currencies self.supported_currency_array = dom.xpath("/def:wechselkurse/def:devise/@code", namespaces=adminch_ns) @@ -529,7 +531,7 @@ class ECB_getter(Curreny_getter_interface): } rate_date = dom.xpath('/gesmes:Envelope/def:Cube/def:Cube/@time', namespaces=ecb_ns)[0] - rate_date_datetime = datetime.strptime(rate_date, '%Y-%m-%d') + rate_date_datetime = datetime.strptime(rate_date, DEFAULT_SERVER_DATE_FORMAT) self.check_rate_date(rate_date_datetime, max_delta_days) # We dynamically update supported currencies self.supported_currency_array = dom.xpath("/gesmes:Envelope/def:Cube/def:Cube/def:Cube/@currency", @@ -586,7 +588,7 @@ class PL_NBP_getter(Curreny_getter_interface): ns = {} # Cool, there are no namespaces ! _logger.debug("NBP.pl sent a valid XML file") rate_date = dom.xpath('/tabela_kursow/data_publikacji/text()', namespaces=ns)[0] - rate_date_datetime = datetime.strptime(rate_date, '%Y-%m-%d') + rate_date_datetime = datetime.strptime(rate_date, DEFAULT_SERVER_DATE_FORMAT) self.check_rate_date(rate_date_datetime, max_delta_days) # We dynamically update supported currencies self.supported_currency_array = dom.xpath('/tabela_kursow/pozycja/kod_waluty/text()', namespaces=ns) From 5300e2fa2c7003ec793a82f3bd2aca65b1bbb804 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 15 Jul 2014 16:06:38 -0400 Subject: [PATCH 3/4] currency_rate_update: fix, forget to add import timedelta --- currency_rate_update/currency_rate_update.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/currency_rate_update/currency_rate_update.py b/currency_rate_update/currency_rate_update.py index 0b99ed7b9..c670abbd5 100644 --- a/currency_rate_update/currency_rate_update.py +++ b/currency_rate_update/currency_rate_update.py @@ -36,7 +36,7 @@ import logging import time -from datetime import datetime +from datetime import datetime, timedelta from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT from openerp.tools import DEFAULT_SERVER_DATE_FORMAT from openerp.osv import fields, osv, orm From f57d917e5a24f67f25e600c7bb22e2ba82cca20d Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 18 Jul 2014 18:31:33 -0400 Subject: [PATCH 4/4] currency_rate_update : mini date fix in currency_rate_update.py --- currency_rate_update/currency_rate_update.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/currency_rate_update/currency_rate_update.py b/currency_rate_update/currency_rate_update.py index c670abbd5..94492137c 100644 --- a/currency_rate_update/currency_rate_update.py +++ b/currency_rate_update/currency_rate_update.py @@ -247,12 +247,12 @@ class Currency_rate_update(osv.Model): # Show the most recent note at the top msg = "%s \n%s currency updated. %s" % \ (log_info or '', - datetime.strftime(datetime.today(), DEFAULT_SERVER_DATETIME_FORMAT), + datetime.today().strftime(DEFAULT_SERVER_DATETIME_FORMAT), note) service.write({'note': msg}) except Exception as exc: error_msg = "\n%s ERROR : %s %s" %\ - (datetime.strftime(datetime.today(), DEFAULT_SERVER_DATETIME_FORMAT), + (datetime.today().strftime(DEFAULT_SERVER_DATETIME_FORMAT), repr(exc), note) _logger.info(repr(exc)) @@ -401,7 +401,7 @@ class Curreny_getter_interface(object): # We always have a warning when rate_date != today rate_date_str = datetime.strftime(rate_date, DEFAULT_SERVER_DATE_FORMAT) - if rate_date_str != datetime.strftime(datetime.today(), DEFAULT_SERVER_DATE_FORMAT): + if rate_date.date() != datetime.today().date(): msg = "The rate timestamp (%s) is not today's date" self.log_info = ("WARNING : %s %s") % (msg, rate_date_str) _logger.warning(msg, rate_date_str)