diff options
| author | Yannick Tivisse <yti@odoo.com> | 2019-02-18 13:05:05 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2019-02-18 15:28:15 +0000 |
| commit | ac1ec35af0fe9ef92f7f70fa5ffcb94a689d30fb (patch) | |
| tree | c2c67a59e20e8c4d262156a62064dd212fda4b92 /addons/resource/models | |
| parent | 8fa8ffdf275ac095fe665d33931ea1ad5d755b4b (diff) | |
[FIX] hr_payroll: Convert a method into a helper function
Diffstat (limited to 'addons/resource/models')
| -rw-r--r-- | addons/resource/models/resource.py | 5 | ||||
| -rw-r--r-- | addons/resource/models/resource_mixin.py | 22 |
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) |
