summaryrefslogtreecommitdiff
path: root/addons/resource/models
diff options
context:
space:
mode:
authorYannick Tivisse <yti@odoo.com>2019-02-18 13:05:05 +0000
committerYannick Tivisse <yti@odoo.com>2019-02-18 15:28:15 +0000
commitac1ec35af0fe9ef92f7f70fa5ffcb94a689d30fb (patch)
treec2c67a59e20e8c4d262156a62064dd212fda4b92 /addons/resource/models
parent8fa8ffdf275ac095fe665d33931ea1ad5d755b4b (diff)
[FIX] hr_payroll: Convert a method into a helper function
Diffstat (limited to 'addons/resource/models')
-rw-r--r--addons/resource/models/resource.py5
-rw-r--r--addons/resource/models/resource_mixin.py22
2 files changed, 14 insertions, 13 deletions
diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py
index fd0e8260fc5..53bdf87ce09 100644
--- a/addons/resource/models/resource.py
+++ b/addons/resource/models/resource.py
@@ -11,6 +11,7 @@ from pytz import timezone, utc
from odoo import api, fields, models, _
from odoo.addons.base.models.res_partner import _tz_get
from odoo.exceptions import ValidationError
+from odoo.osv import expression
from odoo.tools.float_utils import float_round
# Default hour per day value. The one should
@@ -211,10 +212,10 @@ class ResourceCalendar(models.Model):
resource_ids = [resource.id, False] if resource else [False]
domain = domain if domain is not None else []
- domain = domain + [
+ domain = expression.AND([domain, [
('calendar_id', '=', self.id),
('resource_id', 'in', resource_ids),
- ]
+ ]])
# express all dates and times in the resource's timezone
tz = timezone((resource or self).tz)
diff --git a/addons/resource/models/resource_mixin.py b/addons/resource/models/resource_mixin.py
index 68541f891c0..f1dc84564da 100644
--- a/addons/resource/models/resource_mixin.py
+++ b/addons/resource/models/resource_mixin.py
@@ -12,6 +12,12 @@ from odoo.tools import float_utils
ROUNDING_FACTOR = 16
+def timezone_datetime(time):
+ if not time.tzinfo:
+ time = time.replace(tzinfo=utc)
+ return time
+
+
class ResourceMixin(models.AbstractModel):
_name = "resource.mixin"
_description = 'Resource Mixin'
@@ -75,7 +81,7 @@ class ResourceMixin(models.AbstractModel):
def _get_day_total(self, from_datetime, to_datetime, calendar, resource):
"""
- @return dict with hours of attendance in each day between `from_datetime` and `to_datetime`
+ :return: dict with hours of attendance in each day between `from_datetime` and `to_datetime`
"""
# total hours per day: retrieve attendances with one extra day margin,
@@ -88,12 +94,6 @@ class ResourceMixin(models.AbstractModel):
day_total[start.date()] += (stop - start).total_seconds() / 3600
return day_total
- def _timezone_datetime(self, time):
- if not time.tzinfo:
- time = time.replace(tzinfo=utc)
- return time
-
-
def _get_work_days_data(self, from_datetime, to_datetime, compute_leaves=True, calendar=None, domain=None):
"""
By default the resource calendar is used, but it can be
@@ -109,8 +109,8 @@ class ResourceMixin(models.AbstractModel):
calendar = calendar or self.resource_calendar_id
# naive datetimes are made explicit in UTC
- from_datetime = self._timezone_datetime(from_datetime)
- to_datetime = self._timezone_datetime(to_datetime)
+ from_datetime = timezone_datetime(from_datetime)
+ to_datetime = timezone_datetime(to_datetime)
day_total = self._get_day_total(from_datetime, to_datetime, calendar, resource)
@@ -137,8 +137,8 @@ class ResourceMixin(models.AbstractModel):
calendar = calendar or self.resource_calendar_id
# naive datetimes are made explicit in UTC
- from_datetime = self._timezone_datetime(from_datetime)
- to_datetime = self._timezone_datetime(to_datetime)
+ from_datetime = timezone_datetime(from_datetime)
+ to_datetime = timezone_datetime(to_datetime)
day_total = self._get_day_total(from_datetime, to_datetime, calendar, resource)