[FIX] resource: get_working_intervals_of_day
To compute start and end date of a working interval this function replaced hour in datetime object without taking into account the time zone. The start and end date taking respectively from calendar_working_day.hour_from and calendar_working_day.hour_to are in the time zone of the user and the datetime object are compared in UTC to avoid schedule's gap. This is why the start and end must be converted in UTC after being replaced by these hours. The tz_info must be removed from dates because it's forbidden to compare naive and aware dates. opw:648349
This commit is contained in:
parent
a69af9c908
commit
64e1c28e35
|
@ -28,6 +28,7 @@ from openerp import tools
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
from openerp.tools.float_utils import float_compare
|
from openerp.tools.float_utils import float_compare
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
|
import pytz
|
||||||
|
|
||||||
class resource_calendar(osv.osv):
|
class resource_calendar(osv.osv):
|
||||||
""" Calendar model for a resource. It has
|
""" Calendar model for a resource. It has
|
||||||
|
@ -335,11 +336,13 @@ class resource_calendar(osv.osv):
|
||||||
return intervals
|
return intervals
|
||||||
|
|
||||||
working_intervals = []
|
working_intervals = []
|
||||||
|
tz_info = fields.datetime.context_timestamp(cr, uid, work_dt, context=context).tzinfo
|
||||||
for calendar_working_day in self.get_attendances_for_weekdays(cr, uid, id, [start_dt.weekday()], context):
|
for calendar_working_day in self.get_attendances_for_weekdays(cr, uid, id, [start_dt.weekday()], context):
|
||||||
working_interval = (
|
x = work_dt.replace(hour=int(calendar_working_day.hour_from))
|
||||||
work_dt.replace(hour=int(calendar_working_day.hour_from)),
|
y = work_dt.replace(hour=int(calendar_working_day.hour_to))
|
||||||
work_dt.replace(hour=int(calendar_working_day.hour_to))
|
x = x.replace(tzinfo=tz_info).astimezone(pytz.UTC).replace(tzinfo=None)
|
||||||
)
|
y = y.replace(tzinfo=tz_info).astimezone(pytz.UTC).replace(tzinfo=None)
|
||||||
|
working_interval = (x, y)
|
||||||
working_intervals += self.interval_remove_leaves(working_interval, work_limits)
|
working_intervals += self.interval_remove_leaves(working_interval, work_limits)
|
||||||
|
|
||||||
# find leave intervals
|
# find leave intervals
|
||||||
|
@ -598,7 +601,7 @@ class resource_calendar(osv.osv):
|
||||||
for dt_str, hours, calendar_id in date_and_hours_by_cal:
|
for dt_str, hours, calendar_id in date_and_hours_by_cal:
|
||||||
result = self.schedule_hours(
|
result = self.schedule_hours(
|
||||||
cr, uid, calendar_id, hours,
|
cr, uid, calendar_id, hours,
|
||||||
day_dt=datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S').replace(minute=0, second=0),
|
day_dt=datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S').replace(second=0),
|
||||||
compute_leaves=True, resource_id=resource,
|
compute_leaves=True, resource_id=resource,
|
||||||
default_interval=(8, 16)
|
default_interval=(8, 16)
|
||||||
)
|
)
|
||||||
|
|
|
@ -153,13 +153,13 @@ class TestResource(TestResourceCommon):
|
||||||
_format = '%Y-%m-%d %H:%M:%S'
|
_format = '%Y-%m-%d %H:%M:%S'
|
||||||
|
|
||||||
# Test: day0 without leaves: 1 interval
|
# Test: day0 without leaves: 1 interval
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date1)
|
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date1, context={'tz': 'UTC'})
|
||||||
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working intervals')
|
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-12 09:08:07', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-12 09:08:07', _format), 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong working intervals')
|
||||||
|
|
||||||
# Test: day3 without leaves: 2 interval
|
# Test: day3 without leaves: 2 interval
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date2)
|
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date2, context={'tz': 'UTC'})
|
||||||
self.assertEqual(len(intervals), 2, 'resource_calendar: wrong working intervals')
|
self.assertEqual(len(intervals), 2, 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-15 10:11:12', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-15 10:11:12', _format), 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-15 13:00:00', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-15 13:00:00', _format), 'resource_calendar: wrong working intervals')
|
||||||
|
@ -167,7 +167,7 @@ class TestResource(TestResourceCommon):
|
||||||
self.assertEqual(intervals[1][1], datetime.strptime('2013-02-15 23:00:00', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[1][1], datetime.strptime('2013-02-15 23:00:00', _format), 'resource_calendar: wrong working intervals')
|
||||||
|
|
||||||
# Test: day0 with leaves outside range: 1 interval
|
# Test: day0 with leaves outside range: 1 interval
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date1.replace(hour=0), compute_leaves=True)
|
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date1.replace(hour=0), compute_leaves=True, context={'tz': 'UTC'})
|
||||||
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working intervals')
|
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-12 08:00:00', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-12 08:00:00', _format), 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong working intervals')
|
||||||
|
@ -176,7 +176,7 @@ class TestResource(TestResourceCommon):
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id,
|
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id,
|
||||||
start_dt=self.date1.replace(hour=8) + relativedelta(days=7),
|
start_dt=self.date1.replace(hour=8) + relativedelta(days=7),
|
||||||
end_dt=self.date1.replace(hour=15, minute=45, second=30) + relativedelta(days=7),
|
end_dt=self.date1.replace(hour=15, minute=45, second=30) + relativedelta(days=7),
|
||||||
compute_leaves=True)
|
compute_leaves=True, context={'tz': 'UTC'})
|
||||||
self.assertEqual(len(intervals), 2, 'resource_calendar: wrong working intervals')
|
self.assertEqual(len(intervals), 2, 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-19 08:08:07', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-19 08:08:07', _format), 'resource_calendar: wrong working intervals')
|
||||||
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-19 09:00:00', _format), 'resource_calendar: wrong working intervals')
|
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-19 09:00:00', _format), 'resource_calendar: wrong working intervals')
|
||||||
|
@ -189,18 +189,18 @@ class TestResource(TestResourceCommon):
|
||||||
_format = '%Y-%m-%d %H:%M:%S'
|
_format = '%Y-%m-%d %H:%M:%S'
|
||||||
|
|
||||||
# Test: day1, beginning at 10:30 -> work from 10:30 (arrival) until 16:00
|
# Test: day1, beginning at 10:30 -> work from 10:30 (arrival) until 16:00
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date1.replace(hour=10, minute=30, second=0))
|
intervals = self.resource_calendar.get_working_intervals_of_day(cr, uid, self.calendar_id, start_dt=self.date1.replace(hour=10, minute=30, second=0), context={'tz': 'UTC'})
|
||||||
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working interval / day computing')
|
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working interval / day computing')
|
||||||
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-12 10:30:00', _format), 'resource_calendar: wrong working interval / day computing')
|
self.assertEqual(intervals[0][0], datetime.strptime('2013-02-12 10:30:00', _format), 'resource_calendar: wrong working interval / day computing')
|
||||||
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong working interval / day computing')
|
self.assertEqual(intervals[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong working interval / day computing')
|
||||||
# Test: hour computation for same interval, should give 5.5
|
# Test: hour computation for same interval, should give 5.5
|
||||||
wh = self.resource_calendar.get_working_hours_of_date(cr, uid, self.calendar_id, start_dt=self.date1.replace(hour=10, minute=30, second=0))
|
wh = self.resource_calendar.get_working_hours_of_date(cr, uid, self.calendar_id, start_dt=self.date1.replace(hour=10, minute=30, second=0), context={'tz': 'UTC'})
|
||||||
self.assertEqual(wh, 5.5, 'resource_calendar: wrong working interval / day time computing')
|
self.assertEqual(wh, 5.5, 'resource_calendar: wrong working interval / day time computing')
|
||||||
|
|
||||||
# Test: day1+7 on leave, without leave computation
|
# Test: day1+7 on leave, without leave computation
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(
|
intervals = self.resource_calendar.get_working_intervals_of_day(
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=7)
|
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=7), context={'tz': 'UTC'}
|
||||||
)
|
)
|
||||||
# Result: day1 (08->16)
|
# Result: day1 (08->16)
|
||||||
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working interval/day computing')
|
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working interval/day computing')
|
||||||
|
@ -211,7 +211,7 @@ class TestResource(TestResourceCommon):
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(
|
intervals = self.resource_calendar.get_working_intervals_of_day(
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=7),
|
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=7),
|
||||||
compute_leaves=True
|
compute_leaves=True, context={'tz': 'UTC'}
|
||||||
)
|
)
|
||||||
# Result: day1 (08->09 + 12->16)
|
# Result: day1 (08->09 + 12->16)
|
||||||
self.assertEqual(len(intervals), 2, 'resource_calendar: wrong working interval/day computing')
|
self.assertEqual(len(intervals), 2, 'resource_calendar: wrong working interval/day computing')
|
||||||
|
@ -224,7 +224,7 @@ class TestResource(TestResourceCommon):
|
||||||
intervals = self.resource_calendar.get_working_intervals_of_day(
|
intervals = self.resource_calendar.get_working_intervals_of_day(
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=14),
|
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=14),
|
||||||
compute_leaves=True
|
compute_leaves=True, context={'tz': 'UTC'}
|
||||||
)
|
)
|
||||||
# Result: day1 (08->16)
|
# Result: day1 (08->16)
|
||||||
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working interval/day computing')
|
self.assertEqual(len(intervals), 1, 'resource_calendar: wrong working interval/day computing')
|
||||||
|
@ -236,7 +236,7 @@ class TestResource(TestResourceCommon):
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=14),
|
start_dt=self.date1.replace(hour=7, minute=0, second=0) + relativedelta(days=14),
|
||||||
compute_leaves=True,
|
compute_leaves=True,
|
||||||
resource_id=self.resource1_id
|
resource_id=self.resource1_id, context={'tz': 'UTC'}
|
||||||
)
|
)
|
||||||
# Result: nothing, because on leave
|
# Result: nothing, because on leave
|
||||||
self.assertEqual(len(intervals), 0, 'resource_calendar: wrong working interval/day computing')
|
self.assertEqual(len(intervals), 0, 'resource_calendar: wrong working interval/day computing')
|
||||||
|
@ -268,7 +268,7 @@ class TestResource(TestResourceCommon):
|
||||||
# (datetime.datetime(2013, 2, 8, 16, 0), datetime.datetime(2013, 2, 8, 23, 0))
|
# (datetime.datetime(2013, 2, 8, 16, 0), datetime.datetime(2013, 2, 8, 23, 0))
|
||||||
# (datetime.datetime(2013, 2, 12, 8, 0), datetime.datetime(2013, 2, 12, 9, 0))
|
# (datetime.datetime(2013, 2, 12, 8, 0), datetime.datetime(2013, 2, 12, 9, 0))
|
||||||
|
|
||||||
res = self.resource_calendar.schedule_hours(cr, uid, self.calendar_id, -40, day_dt=self.date1.replace(minute=0, second=0))
|
res = self.resource_calendar.schedule_hours(cr, uid, self.calendar_id, -40, day_dt=self.date1.replace(minute=0, second=0), context={'tz': 'UTC'})
|
||||||
# current day, limited at 09:00 because of day_dt specified -> 1 hour
|
# current day, limited at 09:00 because of day_dt specified -> 1 hour
|
||||||
self.assertEqual(res[-1][0], datetime.strptime('2013-02-12 08:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
self.assertEqual(res[-1][0], datetime.strptime('2013-02-12 08:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
||||||
self.assertEqual(res[-1][1], datetime.strptime('2013-02-12 09:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
self.assertEqual(res[-1][1], datetime.strptime('2013-02-12 09:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
||||||
|
@ -307,7 +307,7 @@ class TestResource(TestResourceCommon):
|
||||||
|
|
||||||
res = self.resource_calendar.schedule_hours(
|
res = self.resource_calendar.schedule_hours(
|
||||||
cr, uid, self.calendar_id, 40,
|
cr, uid, self.calendar_id, 40,
|
||||||
day_dt=self.date1.replace(minute=0, second=0)
|
day_dt=self.date1.replace(minute=0, second=0), context={'tz': 'UTC'}
|
||||||
)
|
)
|
||||||
self.assertEqual(res[0][0], datetime.strptime('2013-02-12 09:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
self.assertEqual(res[0][0], datetime.strptime('2013-02-12 09:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
||||||
self.assertEqual(res[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
self.assertEqual(res[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
||||||
|
@ -341,7 +341,8 @@ class TestResource(TestResourceCommon):
|
||||||
cr, uid, self.calendar_id, 40,
|
cr, uid, self.calendar_id, 40,
|
||||||
day_dt=self.date1.replace(minute=0, second=0),
|
day_dt=self.date1.replace(minute=0, second=0),
|
||||||
compute_leaves=True,
|
compute_leaves=True,
|
||||||
resource_id=self.resource1_id
|
resource_id=self.resource1_id,
|
||||||
|
context={'tz': 'UTC'}
|
||||||
)
|
)
|
||||||
self.assertEqual(res[0][0], datetime.strptime('2013-02-12 09:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
self.assertEqual(res[0][0], datetime.strptime('2013-02-12 09:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
||||||
self.assertEqual(res[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
self.assertEqual(res[0][1], datetime.strptime('2013-02-12 16:00:00', _format), 'resource_calendar: wrong hours scheduling')
|
||||||
|
@ -376,7 +377,7 @@ class TestResource(TestResourceCommon):
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
self.date1.replace(hour=6, minute=0),
|
self.date1.replace(hour=6, minute=0),
|
||||||
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
||||||
resource_id=self.resource1_id, exclude_leaves=True)
|
resource_id=self.resource1_id, exclude_leaves=True, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res, 40.0, 'resource_calendar: wrong _interval_hours_get compatibility computation')
|
self.assertEqual(res, 40.0, 'resource_calendar: wrong _interval_hours_get compatibility computation')
|
||||||
|
|
||||||
# new API: resource without leaves
|
# new API: resource without leaves
|
||||||
|
@ -385,7 +386,7 @@ class TestResource(TestResourceCommon):
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
self.date1.replace(hour=6, minute=0),
|
self.date1.replace(hour=6, minute=0),
|
||||||
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
||||||
compute_leaves=False, resource_id=self.resource1_id)
|
compute_leaves=False, resource_id=self.resource1_id, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res, 40.0, 'resource_calendar: wrong get_working_hours computation')
|
self.assertEqual(res, 40.0, 'resource_calendar: wrong get_working_hours computation')
|
||||||
|
|
||||||
# old API: resource and leaves
|
# old API: resource and leaves
|
||||||
|
@ -394,7 +395,7 @@ class TestResource(TestResourceCommon):
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
self.date1.replace(hour=6, minute=0),
|
self.date1.replace(hour=6, minute=0),
|
||||||
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
||||||
resource_id=self.resource1_id, exclude_leaves=False)
|
resource_id=self.resource1_id, exclude_leaves=False, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res, 33.0, 'resource_calendar: wrong _interval_hours_get compatibility computation')
|
self.assertEqual(res, 33.0, 'resource_calendar: wrong _interval_hours_get compatibility computation')
|
||||||
|
|
||||||
# new API: resource and leaves
|
# new API: resource and leaves
|
||||||
|
@ -403,7 +404,7 @@ class TestResource(TestResourceCommon):
|
||||||
cr, uid, self.calendar_id,
|
cr, uid, self.calendar_id,
|
||||||
self.date1.replace(hour=6, minute=0),
|
self.date1.replace(hour=6, minute=0),
|
||||||
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
self.date2.replace(hour=23, minute=0) + relativedelta(days=7),
|
||||||
compute_leaves=True, resource_id=self.resource1_id)
|
compute_leaves=True, resource_id=self.resource1_id, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res, 33.0, 'resource_calendar: wrong get_working_hours computation')
|
self.assertEqual(res, 33.0, 'resource_calendar: wrong get_working_hours computation')
|
||||||
|
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
|
@ -416,7 +417,7 @@ class TestResource(TestResourceCommon):
|
||||||
self.date1.replace(hour=6, minute=0),
|
self.date1.replace(hour=6, minute=0),
|
||||||
self.date2.replace(hour=23, minute=0),
|
self.date2.replace(hour=23, minute=0),
|
||||||
compute_leaves=True, resource_id=self.resource1_id,
|
compute_leaves=True, resource_id=self.resource1_id,
|
||||||
default_interval=(8, 16))
|
default_interval=(8, 16), context={'tz': 'UTC'})
|
||||||
self.assertEqual(res, 32.0, 'resource_calendar: wrong get_working_hours computation')
|
self.assertEqual(res, 32.0, 'resource_calendar: wrong get_working_hours computation')
|
||||||
|
|
||||||
def test_50_calendar_schedule_days(self):
|
def test_50_calendar_schedule_days(self):
|
||||||
|
@ -428,14 +429,14 @@ class TestResource(TestResourceCommon):
|
||||||
# Test1: with calendar
|
# Test1: with calendar
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
|
|
||||||
res = self.resource_calendar.schedule_days_get_date(cr, uid, self.calendar_id, 5, day_date=self.date1)
|
res = self.resource_calendar.schedule_days_get_date(cr, uid, self.calendar_id, 5, day_date=self.date1, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res.date(), datetime.strptime('2013-02-26 00:0:00', _format).date(), 'resource_calendar: wrong days scheduling')
|
self.assertEqual(res.date(), datetime.strptime('2013-02-26 00:0:00', _format).date(), 'resource_calendar: wrong days scheduling')
|
||||||
res = self.resource_calendar.schedule_days_get_date(cr, uid, self.calendar_id, -2, day_date=self.date1)
|
res = self.resource_calendar.schedule_days_get_date(cr, uid, self.calendar_id, -2, day_date=self.date1, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res.date(), datetime.strptime('2013-02-08 00:00:00', _format).date(), 'resource_calendar: wrong days scheduling')
|
self.assertEqual(res.date(), datetime.strptime('2013-02-08 00:00:00', _format).date(), 'resource_calendar: wrong days scheduling')
|
||||||
|
|
||||||
res = self.resource_calendar.schedule_days_get_date(
|
res = self.resource_calendar.schedule_days_get_date(
|
||||||
cr, uid, self.calendar_id, 5, day_date=self.date1,
|
cr, uid, self.calendar_id, 5, day_date=self.date1,
|
||||||
compute_leaves=True, resource_id=self.resource1_id)
|
compute_leaves=True, resource_id=self.resource1_id, context={'tz': 'UTC'})
|
||||||
self.assertEqual(res.date(), datetime.strptime('2013-03-01 00:0:00', _format).date(), 'resource_calendar: wrong days scheduling')
|
self.assertEqual(res.date(), datetime.strptime('2013-03-01 00:0:00', _format).date(), 'resource_calendar: wrong days scheduling')
|
||||||
|
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
|
@ -443,7 +444,7 @@ class TestResource(TestResourceCommon):
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
|
|
||||||
# Without calendar, should only count days -> 12 -> 16, 5 days with default intervals
|
# Without calendar, should only count days -> 12 -> 16, 5 days with default intervals
|
||||||
res = self.resource_calendar.schedule_days_get_date(cr, uid, None, 5, day_date=self.date1, default_interval=(8, 16))
|
res = self.resource_calendar.schedule_days_get_date(cr, uid, None, 5, day_date=self.date1, default_interval=(8, 16), context={'tz': 'UTC'})
|
||||||
self.assertEqual(res, datetime.strptime('2013-02-16 16:00:00', _format), 'resource_calendar: wrong days scheduling')
|
self.assertEqual(res, datetime.strptime('2013-02-16 16:00:00', _format), 'resource_calendar: wrong days scheduling')
|
||||||
|
|
||||||
def seconds(td):
|
def seconds(td):
|
||||||
|
|
Loading…
Reference in New Issue