From baae79b5656287a2511b78170a6242c6fa2cedfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 23 Dec 2020 12:17:37 +0100 Subject: [PATCH 01/20] [ADD] hr_holidays_natural_period: Add natural day in request unit leave types [UPD] Update hr_holidays_natural_period.pot [UPD] README.rst --- hr_holidays_natural_period/README.rst | 97 ++++ hr_holidays_natural_period/__init__.py | 1 + hr_holidays_natural_period/__manifest__.py | 16 + .../i18n/hr_holidays_natural_period.pot | 39 ++ hr_holidays_natural_period/models/__init__.py | 3 + hr_holidays_natural_period/models/hr_leave.py | 25 + .../models/hr_leave_type.py | 10 + .../models/resource_calendar.py | 55 +++ .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 1 + hr_holidays_natural_period/readme/USAGE.rst | 9 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 442 ++++++++++++++++++ hr_holidays_natural_period/tests/__init__.py | 1 + .../tests/test_hr_leave.py | 57 +++ 15 files changed, 760 insertions(+) create mode 100644 hr_holidays_natural_period/README.rst create mode 100644 hr_holidays_natural_period/__init__.py create mode 100644 hr_holidays_natural_period/__manifest__.py create mode 100644 hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot create mode 100644 hr_holidays_natural_period/models/__init__.py create mode 100644 hr_holidays_natural_period/models/hr_leave.py create mode 100644 hr_holidays_natural_period/models/hr_leave_type.py create mode 100644 hr_holidays_natural_period/models/resource_calendar.py create mode 100644 hr_holidays_natural_period/readme/CONTRIBUTORS.rst create mode 100644 hr_holidays_natural_period/readme/DESCRIPTION.rst create mode 100644 hr_holidays_natural_period/readme/USAGE.rst create mode 100644 hr_holidays_natural_period/static/description/icon.png create mode 100644 hr_holidays_natural_period/static/description/index.html create mode 100644 hr_holidays_natural_period/tests/__init__.py create mode 100644 hr_holidays_natural_period/tests/test_hr_leave.py diff --git a/hr_holidays_natural_period/README.rst b/hr_holidays_natural_period/README.rst new file mode 100644 index 00000000..1ed9379f --- /dev/null +++ b/hr_holidays_natural_period/README.rst @@ -0,0 +1,97 @@ +======================= +Holidays natural period +======================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--holidays-lightgray.png?logo=github + :target: https://github.com/OCA/hr-holidays/tree/13.0/hr_holidays_natural_period + :alt: OCA/hr-holidays +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/hr-holidays-13-0/hr-holidays-13-0-hr_holidays_natural_period + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/290/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module was written to define natural day option in request unit on holidays type. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +For using natural period on leaves: + +#. Go to *Leaves > Dashboard*. +#. Select dragging on the calendar the days you want to be on leave, or go + to the form view for selecting start and end dates. +#. Select the proper "Leave Type" that has "Natural day" selected in "Request unit". +#. If no leave type is yet specified, then default configuration is to exclude + public holidays. +#. The number of days will be computed without employee calendar used. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* Tecnativa + + * Víctor Martínez + * Pedro Baeza + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +This module is part of the `OCA/hr-holidays `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_holidays_natural_period/__init__.py b/hr_holidays_natural_period/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/hr_holidays_natural_period/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py new file mode 100644 index 00000000..cbe064e6 --- /dev/null +++ b/hr_holidays_natural_period/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2020 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Holidays natural period", + "summary": "Apply natural days in holidays", + "version": "13.0.1.0.0", + "category": "Human Resources", + "website": "https://github.com/OCA/hr-holidays/", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["hr_holidays"], + "data": [], + "maintainers": ["victoralmau"], +} diff --git a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot new file mode 100644 index 00000000..3f63df6f --- /dev/null +++ b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_holidays_natural_period +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day +msgid "Natural day" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_resource_calendar +msgid "Resource Working Time" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__request_unit +msgid "Take Time Off in" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave +msgid "Time Off" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave_type +msgid "Time Off Type" +msgstr "" diff --git a/hr_holidays_natural_period/models/__init__.py b/hr_holidays_natural_period/models/__init__.py new file mode 100644 index 00000000..ae7ae6ad --- /dev/null +++ b/hr_holidays_natural_period/models/__init__.py @@ -0,0 +1,3 @@ +from . import hr_leave_type +from . import hr_leave +from . import resource_calendar diff --git a/hr_holidays_natural_period/models/hr_leave.py b/hr_holidays_natural_period/models/hr_leave.py new file mode 100644 index 00000000..03d25ec5 --- /dev/null +++ b/hr_holidays_natural_period/models/hr_leave.py @@ -0,0 +1,25 @@ +# Copyright 2020 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class HrLeave(models.Model): + _inherit = "hr.leave" + + @api.onchange("holiday_status_id") + def _onchange_holiday_status_id(self): + res = super()._onchange_holiday_status_id() + if (self._origin.holiday_status_id.request_unit == "natural_day") != ( + self.holiday_status_id.request_unit == "natural_day" + ): + self.with_context(natural_period=True)._onchange_leave_dates() + return res + + def _get_number_of_days(self, date_from, date_to, employee_id): + instance = self.with_context( + natural_period=bool(self.holiday_status_id.request_unit == "natural_day") + ) + return super(HrLeave, instance)._get_number_of_days( + date_from, date_to, employee_id + ) diff --git a/hr_holidays_natural_period/models/hr_leave_type.py b/hr_holidays_natural_period/models/hr_leave_type.py new file mode 100644 index 00000000..7aa66513 --- /dev/null +++ b/hr_holidays_natural_period/models/hr_leave_type.py @@ -0,0 +1,10 @@ +# Copyright 2020 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class HrLeaveType(models.Model): + _inherit = "hr.leave.type" + + request_unit = fields.Selection(selection_add=[("natural_day", "Natural day")]) diff --git a/hr_holidays_natural_period/models/resource_calendar.py b/hr_holidays_natural_period/models/resource_calendar.py new file mode 100644 index 00000000..184a1018 --- /dev/null +++ b/hr_holidays_natural_period/models/resource_calendar.py @@ -0,0 +1,55 @@ +# Copyright 2020 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from datetime import datetime, time + +from dateutil import rrule +from pytz import timezone + +from odoo import models + +from odoo.addons.resource.models.resource import Intervals + + +class ResourceCalendar(models.Model): + _inherit = "resource.calendar" + + def _exist_interval_in_date(self, intervals, date): + for interval in intervals: + if interval[0].date == date: + return True + return False + + def _natural_period_intervals_batch( + self, start_dt, end_dt, intervals, resources, tz + ): + for resource in resources: + interval_resource = intervals[resource.id] + attendances = [] + if len(interval_resource._items) > 0: + attendances = interval_resource._items + for day in rrule.rrule(rrule.DAILY, dtstart=start_dt, until=end_dt): + exist_interval = self._exist_interval_in_date(attendances, day.date()) + if not exist_interval: + attendances.append( + ( + datetime.combine(day.date(), time.min).replace(tzinfo=tz), + datetime.combine(day.date(), time.max).replace(tzinfo=tz), + self.env["resource.calendar.attendance"], + ) + ) + intervals[resource.id] = Intervals(attendances) + return intervals + + def _attendance_intervals_batch( + self, start_dt, end_dt, resources=None, domain=None, tz=None + ): + res = super()._attendance_intervals_batch( + start_dt=start_dt, end_dt=end_dt, resources=resources, domain=domain, tz=tz + ) + if self.env.context.get("natural_period"): + tz = tz if tz else timezone((resources[:1] or self).tz) + return self._natural_period_intervals_batch( + start_dt, end_dt, res, resources, tz + ) + return res diff --git a/hr_holidays_natural_period/readme/CONTRIBUTORS.rst b/hr_holidays_natural_period/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..1a5f4368 --- /dev/null +++ b/hr_holidays_natural_period/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Tecnativa + + * Víctor Martínez + * Pedro Baeza diff --git a/hr_holidays_natural_period/readme/DESCRIPTION.rst b/hr_holidays_natural_period/readme/DESCRIPTION.rst new file mode 100644 index 00000000..f3730d10 --- /dev/null +++ b/hr_holidays_natural_period/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module was written to define natural day option in request unit on holidays type. diff --git a/hr_holidays_natural_period/readme/USAGE.rst b/hr_holidays_natural_period/readme/USAGE.rst new file mode 100644 index 00000000..a4425e87 --- /dev/null +++ b/hr_holidays_natural_period/readme/USAGE.rst @@ -0,0 +1,9 @@ +For using natural period on leaves: + +#. Go to *Leaves > Dashboard*. +#. Select dragging on the calendar the days you want to be on leave, or go + to the form view for selecting start and end dates. +#. Select the proper "Leave Type" that has "Natural day" selected in "Request unit". +#. If no leave type is yet specified, then default configuration is to exclude + public holidays. +#. The number of days will be computed without employee calendar used. diff --git a/hr_holidays_natural_period/static/description/icon.png b/hr_holidays_natural_period/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/hr_holidays_natural_period/static/description/index.html b/hr_holidays_natural_period/static/description/index.html new file mode 100644 index 00000000..e900281b --- /dev/null +++ b/hr_holidays_natural_period/static/description/index.html @@ -0,0 +1,442 @@ + + + + + + +Holidays natural period + + + +
+

Holidays natural period

+ + +

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

+

This module was written to define natural day option in request unit on holidays type.

+

Table of contents

+ +
+

Usage

+

For using natural period on leaves:

+
    +
  1. Go to Leaves > Dashboard.
  2. +
  3. Select dragging on the calendar the days you want to be on leave, or go +to the form view for selecting start and end dates.
  4. +
  5. Select the proper “Leave Type” that has “Natural day” selected in “Request unit”.
  6. +
  7. If no leave type is yet specified, then default configuration is to exclude +public holidays.
  8. +
  9. The number of days will be computed without employee calendar used.
  10. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

victoralmau

+

This module is part of the OCA/hr-holidays project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/hr_holidays_natural_period/tests/__init__.py b/hr_holidays_natural_period/tests/__init__.py new file mode 100644 index 00000000..4752aaf0 --- /dev/null +++ b/hr_holidays_natural_period/tests/__init__.py @@ -0,0 +1 @@ +from . import test_hr_leave diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py new file mode 100644 index 00000000..88857704 --- /dev/null +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -0,0 +1,57 @@ +# Copyright 2020 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests import common + + +class TestHrLeave(common.SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.HrLeave = cls.env["hr.leave"] + cls.leave_type = cls.env["hr.leave.type"].create( + { + "name": "Test partner", + "request_unit": "natural_day", + "responsible_id": cls.env.ref("base.user_admin").id, + } + ) + calendar = cls.env.ref("resource.resource_calendar_std") + partner = cls.env["res.partner"].create( + { + "name": "Test employee", + "type": "private", + "country_id": cls.env.ref("base.es").id, + } + ) + cls.employee = cls.env["hr.employee"].create( + { + "name": "Test employee", + "address_home_id": partner.id, + "resource_calendar_id": calendar.id, + } + ) + + def test_hr_leave_natural_day(self): + leave_request = self.HrLeave.new( + { + "date_from": "2021-01-02 00:00:00", + "date_to": "2021-01-04 23:59:59", + "holiday_status_id": self.leave_type.id, + "employee_id": self.employee.id, + } + ) + leave_request._onchange_leave_dates() + self.assertEquals(leave_request.number_of_days, 3.0) + + def test_hr_leave_day(self): + leave_request = self.HrLeave.new( + { + "date_from": "2021-01-02 00:00:00", # Saturday + "date_to": "2021-01-05 00:00:00", # Monday + "holiday_status_id": self.env.ref("hr_holidays.holiday_status_cl").id, + "employee_id": self.employee.id, + } + ) + leave_request._onchange_leave_dates() + self.assertEquals(leave_request.number_of_days, 1) From b5299cdff37459e52aabc57255468697c5dd7d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 15 Apr 2021 13:35:47 +0200 Subject: [PATCH 02/20] [FIX] hr_holidays_natural_period: Prevent error in form leave when employee is not set yet hr_holidays_natural_period 13.0.1.0.1 --- hr_holidays_natural_period/__manifest__.py | 2 +- hr_holidays_natural_period/models/resource_calendar.py | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index cbe064e6..26b922e6 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "13.0.1.0.0", + "version": "13.0.1.0.1", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays/", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_holidays_natural_period/models/resource_calendar.py b/hr_holidays_natural_period/models/resource_calendar.py index 184a1018..78fbc8c0 100644 --- a/hr_holidays_natural_period/models/resource_calendar.py +++ b/hr_holidays_natural_period/models/resource_calendar.py @@ -1,4 +1,4 @@ -# Copyright 2020 Tecnativa - Víctor Martínez +# Copyright 2020-2021 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from datetime import datetime, time @@ -20,11 +20,10 @@ def _exist_interval_in_date(self, intervals, date): return True return False - def _natural_period_intervals_batch( - self, start_dt, end_dt, intervals, resources, tz - ): + def _natural_period_intervals_batch(self, start_dt, end_dt, intervals, resources): for resource in resources: interval_resource = intervals[resource.id] + tz = timezone(resource.tz) attendances = [] if len(interval_resource._items) > 0: attendances = interval_resource._items @@ -48,8 +47,7 @@ def _attendance_intervals_batch( start_dt=start_dt, end_dt=end_dt, resources=resources, domain=domain, tz=tz ) if self.env.context.get("natural_period"): - tz = tz if tz else timezone((resources[:1] or self).tz) return self._natural_period_intervals_batch( - start_dt, end_dt, res, resources, tz + start_dt, end_dt, res, resources ) return res From 06a46cf237632936e90b65e678f62e2511ca0b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 12 Jul 2021 16:42:35 +0200 Subject: [PATCH 03/20] [FIX] hr_holidays_natural_period: Prevent error in leave form without employee set yet hr_holidays_natural_period 13.0.1.0.2 --- hr_holidays_natural_period/__manifest__.py | 2 +- hr_holidays_natural_period/models/resource_calendar.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index 26b922e6..4b66a50d 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "13.0.1.0.1", + "version": "13.0.1.0.2", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays/", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_holidays_natural_period/models/resource_calendar.py b/hr_holidays_natural_period/models/resource_calendar.py index 78fbc8c0..878d19eb 100644 --- a/hr_holidays_natural_period/models/resource_calendar.py +++ b/hr_holidays_natural_period/models/resource_calendar.py @@ -21,7 +21,7 @@ def _exist_interval_in_date(self, intervals, date): return False def _natural_period_intervals_batch(self, start_dt, end_dt, intervals, resources): - for resource in resources: + for resource in resources or []: interval_resource = intervals[resource.id] tz = timezone(resource.tz) attendances = [] From bb0bfbc88fa6de36025ccad0e44d2fb7c3297d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Marques?= Date: Fri, 7 Jan 2022 08:38:17 +0000 Subject: [PATCH 04/20] [IMP] *: pre-commit run --- hr_holidays_natural_period/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index 4b66a50d..8bf4deb5 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -6,7 +6,7 @@ "summary": "Apply natural days in holidays", "version": "13.0.1.0.2", "category": "Human Resources", - "website": "https://github.com/OCA/hr-holidays/", + "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, From 03774a85662f64b88d21073e5b75f88d22dd296d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 5 Jan 2022 17:25:27 +0100 Subject: [PATCH 05/20] [FIX] hr_holidays_natural_period: Fix _exist_interval_in_date() function. Previously, the _exist_interval_in_date () function always returned False, which always created a new interval. Although this was totally incorrect, it was detected in a real use case when there were working days and holidays in the date range causing incorrect overtime. TT33779 hr_holidays_natural_period 13.0.1.0.3 --- hr_holidays_natural_period/__manifest__.py | 2 +- .../models/resource_calendar.py | 2 +- .../tests/test_hr_leave.py | 44 +++++++++++-------- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index 8bf4deb5..269f6bff 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "13.0.1.0.2", + "version": "13.0.1.0.3", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_holidays_natural_period/models/resource_calendar.py b/hr_holidays_natural_period/models/resource_calendar.py index 878d19eb..9ae4784f 100644 --- a/hr_holidays_natural_period/models/resource_calendar.py +++ b/hr_holidays_natural_period/models/resource_calendar.py @@ -16,7 +16,7 @@ class ResourceCalendar(models.Model): def _exist_interval_in_date(self, intervals, date): for interval in intervals: - if interval[0].date == date: + if interval[0].date() == date: return True return False diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index 88857704..d6e577df 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -1,7 +1,7 @@ # Copyright 2020 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.tests import common +from odoo.tests import Form, common class TestHrLeave(common.SavepointCase): @@ -17,6 +17,18 @@ def setUpClass(cls): } ) calendar = cls.env.ref("resource.resource_calendar_std") + calendar = calendar.copy({"name": "Test calendar"}) + calendar.switch_calendar_type() + calendar.attendance_ids.filtered( + lambda x: x.week_type == "0" + and not x.display_type + and x.day_period == "afternoon" + ).unlink() + calendar.attendance_ids.filtered( + lambda x: x.week_type == "1" + and not x.display_type + and x.day_period == "morning" + ).unlink() partner = cls.env["res.partner"].create( { "name": "Test employee", @@ -33,25 +45,19 @@ def setUpClass(cls): ) def test_hr_leave_natural_day(self): - leave_request = self.HrLeave.new( - { - "date_from": "2021-01-02 00:00:00", - "date_to": "2021-01-04 23:59:59", - "holiday_status_id": self.leave_type.id, - "employee_id": self.employee.id, - } + leave_form = Form( + self.HrLeave.with_context(default_employee_id=self.employee.id,) ) - leave_request._onchange_leave_dates() - self.assertEquals(leave_request.number_of_days, 3.0) + leave_form.holiday_status_id = self.leave_type + leave_form.request_date_from = "2021-01-02" + leave_form.request_date_to = "2021-01-05" + self.assertEquals(leave_form.number_of_days, 4.0) def test_hr_leave_day(self): - leave_request = self.HrLeave.new( - { - "date_from": "2021-01-02 00:00:00", # Saturday - "date_to": "2021-01-05 00:00:00", # Monday - "holiday_status_id": self.env.ref("hr_holidays.holiday_status_cl").id, - "employee_id": self.employee.id, - } + leave_form = Form( + self.HrLeave.with_context(default_employee_id=self.employee.id,) ) - leave_request._onchange_leave_dates() - self.assertEquals(leave_request.number_of_days, 1) + leave_form.holiday_status_id = self.env.ref("hr_holidays.holiday_status_cl") + leave_form.request_date_from = "2021-01-02" # Saturday + leave_form.request_date_to = "2021-01-04" # Monday + self.assertEquals(leave_form.number_of_days, 1) From 78d0167a248cc8e5a1dc6b4982e079e99fb0cecd Mon Sep 17 00:00:00 2001 From: Noel estudillo Date: Mon, 14 Feb 2022 09:07:27 +0000 Subject: [PATCH 06/20] Added translation using Weblate (Catalan) --- hr_holidays_natural_period/i18n/ca.po | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 hr_holidays_natural_period/i18n/ca.po diff --git a/hr_holidays_natural_period/i18n/ca.po b/hr_holidays_natural_period/i18n/ca.po new file mode 100644 index 00000000..08ffaca4 --- /dev/null +++ b/hr_holidays_natural_period/i18n/ca.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_holidays_natural_period +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-02-14 11:16+0000\n" +"Last-Translator: Noel estudillo \n" +"Language-Team: none\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day +msgid "Natural day" +msgstr "Dia natural" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_resource_calendar +msgid "Resource Working Time" +msgstr "Temps de treball dels recursos" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__request_unit +msgid "Take Time Off in" +msgstr "Preneu-vos un temps lliure" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave +msgid "Time Off" +msgstr "Temps lliure" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave_type +msgid "Time Off Type" +msgstr "Tipus de temps lliure" From 59012e246baa55aa2f443d049fb1d4f823e7d8e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 22 Jul 2022 10:04:32 +0200 Subject: [PATCH 07/20] [IMP] hr_holidays_natural_period: black, isort, prettier --- hr_holidays_natural_period/tests/test_hr_leave.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index d6e577df..22b41687 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -46,7 +46,9 @@ def setUpClass(cls): def test_hr_leave_natural_day(self): leave_form = Form( - self.HrLeave.with_context(default_employee_id=self.employee.id,) + self.HrLeave.with_context( + default_employee_id=self.employee.id, + ) ) leave_form.holiday_status_id = self.leave_type leave_form.request_date_from = "2021-01-02" @@ -55,7 +57,9 @@ def test_hr_leave_natural_day(self): def test_hr_leave_day(self): leave_form = Form( - self.HrLeave.with_context(default_employee_id=self.employee.id,) + self.HrLeave.with_context( + default_employee_id=self.employee.id, + ) ) leave_form.holiday_status_id = self.env.ref("hr_holidays.holiday_status_cl") leave_form.request_date_from = "2021-01-02" # Saturday From aea0d27127051e565cd22c3b799b9535ac2455bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 22 Jul 2022 10:15:34 +0200 Subject: [PATCH 08/20] [MIG] hr_holidays_natural_period: Migration to 14.0 TT37026 [UPD] Update hr_holidays_natural_period.pot [UPD] README.rst --- hr_holidays_natural_period/README.rst | 10 ++++---- hr_holidays_natural_period/__manifest__.py | 3 +-- .../i18n/hr_holidays_natural_period.pot | 23 ++++++++++++++++++- hr_holidays_natural_period/models/hr_leave.py | 13 ++--------- .../models/hr_leave_type.py | 5 +++- .../static/description/index.html | 6 ++--- .../tests/test_hr_leave.py | 6 ++--- 7 files changed, 40 insertions(+), 26 deletions(-) diff --git a/hr_holidays_natural_period/README.rst b/hr_holidays_natural_period/README.rst index 1ed9379f..b703b4ff 100644 --- a/hr_holidays_natural_period/README.rst +++ b/hr_holidays_natural_period/README.rst @@ -14,13 +14,13 @@ Holidays natural period :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--holidays-lightgray.png?logo=github - :target: https://github.com/OCA/hr-holidays/tree/13.0/hr_holidays_natural_period + :target: https://github.com/OCA/hr-holidays/tree/14.0/hr_holidays_natural_period :alt: OCA/hr-holidays .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/hr-holidays-13-0/hr-holidays-13-0-hr_holidays_natural_period + :target: https://translation.odoo-community.org/projects/hr-holidays-14-0/hr-holidays-14-0-hr_holidays_natural_period :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/290/13.0 + :target: https://runbot.odoo-community.org/runbot/290/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -92,6 +92,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/hr-holidays `_ project on GitHub. +This module is part of the `OCA/hr-holidays `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index 269f6bff..9fc02511 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,13 +4,12 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "13.0.1.0.3", + "version": "14.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, "depends": ["hr_holidays"], - "data": [], "maintainers": ["victoralmau"], } diff --git a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot index 3f63df6f..85b43e06 100644 --- a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot +++ b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,6 +13,27 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__display_name +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__display_name +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__id +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__id +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__id +msgid "ID" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave____last_update +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type____last_update +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar____last_update +msgid "Last Modified on" +msgstr "" + #. module: hr_holidays_natural_period #: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day msgid "Natural day" diff --git a/hr_holidays_natural_period/models/hr_leave.py b/hr_holidays_natural_period/models/hr_leave.py index 03d25ec5..726f9a26 100644 --- a/hr_holidays_natural_period/models/hr_leave.py +++ b/hr_holidays_natural_period/models/hr_leave.py @@ -1,21 +1,12 @@ -# Copyright 2020 Tecnativa - Víctor Martínez +# Copyright 2020-2022 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import api, models +from odoo import models class HrLeave(models.Model): _inherit = "hr.leave" - @api.onchange("holiday_status_id") - def _onchange_holiday_status_id(self): - res = super()._onchange_holiday_status_id() - if (self._origin.holiday_status_id.request_unit == "natural_day") != ( - self.holiday_status_id.request_unit == "natural_day" - ): - self.with_context(natural_period=True)._onchange_leave_dates() - return res - def _get_number_of_days(self, date_from, date_to, employee_id): instance = self.with_context( natural_period=bool(self.holiday_status_id.request_unit == "natural_day") diff --git a/hr_holidays_natural_period/models/hr_leave_type.py b/hr_holidays_natural_period/models/hr_leave_type.py index 7aa66513..8088f9bb 100644 --- a/hr_holidays_natural_period/models/hr_leave_type.py +++ b/hr_holidays_natural_period/models/hr_leave_type.py @@ -7,4 +7,7 @@ class HrLeaveType(models.Model): _inherit = "hr.leave.type" - request_unit = fields.Selection(selection_add=[("natural_day", "Natural day")]) + request_unit = fields.Selection( + selection_add=[("natural_day", "Natural day")], + ondelete={"natural_day": "set default"}, + ) diff --git a/hr_holidays_natural_period/static/description/index.html b/hr_holidays_natural_period/static/description/index.html index e900281b..dcef5099 100644 --- a/hr_holidays_natural_period/static/description/index.html +++ b/hr_holidays_natural_period/static/description/index.html @@ -367,7 +367,7 @@

Holidays natural period

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

This module was written to define natural day option in request unit on holidays type.

Table of contents

@@ -400,7 +400,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -433,7 +433,7 @@

Maintainers

promote its widespread use.

Current maintainer:

victoralmau

-

This module is part of the OCA/hr-holidays project on GitHub.

+

This module is part of the OCA/hr-holidays project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index 22b41687..06fc5e63 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -1,4 +1,4 @@ -# Copyright 2020 Tecnativa - Víctor Martínez +# Copyright 2020-2022 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo.tests import Form, common @@ -53,7 +53,7 @@ def test_hr_leave_natural_day(self): leave_form.holiday_status_id = self.leave_type leave_form.request_date_from = "2021-01-02" leave_form.request_date_to = "2021-01-05" - self.assertEquals(leave_form.number_of_days, 4.0) + self.assertEqual(leave_form.number_of_days, 4.0) def test_hr_leave_day(self): leave_form = Form( @@ -64,4 +64,4 @@ def test_hr_leave_day(self): leave_form.holiday_status_id = self.env.ref("hr_holidays.holiday_status_cl") leave_form.request_date_from = "2021-01-02" # Saturday leave_form.request_date_to = "2021-01-04" # Monday - self.assertEquals(leave_form.number_of_days, 1) + self.assertEqual(leave_form.number_of_days, 1) From 584b76241d80f8e1944d72cacd679c573fcfe8bc Mon Sep 17 00:00:00 2001 From: Bole Date: Tue, 23 Aug 2022 09:31:38 +0000 Subject: [PATCH 09/20] Added translation using Weblate (Croatian) --- hr_holidays_natural_period/i18n/hr.po | 64 +++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 hr_holidays_natural_period/i18n/hr.po diff --git a/hr_holidays_natural_period/i18n/hr.po b/hr_holidays_natural_period/i18n/hr.po new file mode 100644 index 00000000..7c1ec797 --- /dev/null +++ b/hr_holidays_natural_period/i18n/hr.po @@ -0,0 +1,64 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_holidays_natural_period +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-08-23 12:07+0000\n" +"Last-Translator: Bole \n" +"Language-Team: none\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__display_name +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__display_name +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__display_name +msgid "Display Name" +msgstr "Prikazani naziv" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__id +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__id +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__id +msgid "ID" +msgstr "ID" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave____last_update +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type____last_update +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar____last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day +msgid "Natural day" +msgstr "Cijeli dan" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_resource_calendar +msgid "Resource Working Time" +msgstr "Radno vrijeme resursa" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__request_unit +msgid "Take Time Off in" +msgstr "Uzmi slobodno kao" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave +msgid "Time Off" +msgstr "Slobodno vrijeme" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave_type +msgid "Time Off Type" +msgstr "Tip slobodnog vremena" From 9eff391c47930ae6284f71a2d4c44947bfe5d8b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 4 Nov 2022 11:00:50 +0100 Subject: [PATCH 10/20] [MIG] hr_holidays_natural_period: Migration to 15.0 TT40362 --- hr_holidays_natural_period/README.rst | 10 +++--- hr_holidays_natural_period/__manifest__.py | 3 +- .../demo/hr_leave_type_data.xml | 8 +++++ hr_holidays_natural_period/i18n/ca.po | 5 +++ hr_holidays_natural_period/i18n/hr.po | 35 ++++++++----------- .../i18n/hr_holidays_natural_period.pot | 28 ++++----------- .../static/description/index.html | 6 ++-- .../tests/test_hr_leave.py | 10 ++---- 8 files changed, 46 insertions(+), 59 deletions(-) create mode 100644 hr_holidays_natural_period/demo/hr_leave_type_data.xml diff --git a/hr_holidays_natural_period/README.rst b/hr_holidays_natural_period/README.rst index b703b4ff..fb8c3b17 100644 --- a/hr_holidays_natural_period/README.rst +++ b/hr_holidays_natural_period/README.rst @@ -14,13 +14,13 @@ Holidays natural period :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--holidays-lightgray.png?logo=github - :target: https://github.com/OCA/hr-holidays/tree/14.0/hr_holidays_natural_period + :target: https://github.com/OCA/hr-holidays/tree/15.0/hr_holidays_natural_period :alt: OCA/hr-holidays .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/hr-holidays-14-0/hr-holidays-14-0-hr_holidays_natural_period + :target: https://translation.odoo-community.org/projects/hr-holidays-15-0/hr-holidays-15-0-hr_holidays_natural_period :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/290/14.0 + :target: https://runbot.odoo-community.org/runbot/290/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -92,6 +92,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/hr-holidays `_ project on GitHub. +This module is part of the `OCA/hr-holidays `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index 9fc02511..b8fc6aaf 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", @@ -12,4 +12,5 @@ "installable": True, "depends": ["hr_holidays"], "maintainers": ["victoralmau"], + "demo": ["demo/hr_leave_type_data.xml"], } diff --git a/hr_holidays_natural_period/demo/hr_leave_type_data.xml b/hr_holidays_natural_period/demo/hr_leave_type_data.xml new file mode 100644 index 00000000..6aeb0841 --- /dev/null +++ b/hr_holidays_natural_period/demo/hr_leave_type_data.xml @@ -0,0 +1,8 @@ + + + + Test Time Off (natural day) + natural_day + + + diff --git a/hr_holidays_natural_period/i18n/ca.po b/hr_holidays_natural_period/i18n/ca.po index 08ffaca4..e5bf1cb3 100644 --- a/hr_holidays_natural_period/i18n/ca.po +++ b/hr_holidays_natural_period/i18n/ca.po @@ -31,6 +31,11 @@ msgstr "Temps de treball dels recursos" msgid "Take Time Off in" msgstr "Preneu-vos un temps lliure" +#. module: hr_holidays_natural_period +#: model:hr.leave.type,name:hr_holidays_natural_period.hr_leave_type_natural_day_test +msgid "Test Time Off (natural day)" +msgstr "" + #. module: hr_holidays_natural_period #: model:ir.model,name:hr_holidays_natural_period.model_hr_leave msgid "Time Off" diff --git a/hr_holidays_natural_period/i18n/hr.po b/hr_holidays_natural_period/i18n/hr.po index 7c1ec797..0135cdea 100644 --- a/hr_holidays_natural_period/i18n/hr.po +++ b/hr_holidays_natural_period/i18n/hr.po @@ -17,27 +17,6 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.3.2\n" -#. module: hr_holidays_natural_period -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__display_name -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__display_name -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__display_name -msgid "Display Name" -msgstr "Prikazani naziv" - -#. module: hr_holidays_natural_period -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__id -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__id -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__id -msgid "ID" -msgstr "ID" - -#. module: hr_holidays_natural_period -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave____last_update -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type____last_update -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar____last_update -msgid "Last Modified on" -msgstr "Zadnje modificirano" - #. module: hr_holidays_natural_period #: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day msgid "Natural day" @@ -53,6 +32,11 @@ msgstr "Radno vrijeme resursa" msgid "Take Time Off in" msgstr "Uzmi slobodno kao" +#. module: hr_holidays_natural_period +#: model:hr.leave.type,name:hr_holidays_natural_period.hr_leave_type_natural_day_test +msgid "Test Time Off (natural day)" +msgstr "" + #. module: hr_holidays_natural_period #: model:ir.model,name:hr_holidays_natural_period.model_hr_leave msgid "Time Off" @@ -62,3 +46,12 @@ msgstr "Slobodno vrijeme" #: model:ir.model,name:hr_holidays_natural_period.model_hr_leave_type msgid "Time Off Type" msgstr "Tip slobodnog vremena" + +#~ msgid "Display Name" +#~ msgstr "Prikazani naziv" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Zadnje modificirano" diff --git a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot index 85b43e06..34dc98cb 100644 --- a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot +++ b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,27 +13,6 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: hr_holidays_natural_period -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__display_name -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__display_name -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__display_name -msgid "Display Name" -msgstr "" - -#. module: hr_holidays_natural_period -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave__id -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__id -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar__id -msgid "ID" -msgstr "" - -#. module: hr_holidays_natural_period -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave____last_update -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type____last_update -#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_resource_calendar____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_holidays_natural_period #: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day msgid "Natural day" @@ -49,6 +28,11 @@ msgstr "" msgid "Take Time Off in" msgstr "" +#. module: hr_holidays_natural_period +#: model:hr.leave.type,name:hr_holidays_natural_period.hr_leave_type_natural_day_test +msgid "Test Time Off (natural day)" +msgstr "" + #. module: hr_holidays_natural_period #: model:ir.model,name:hr_holidays_natural_period.model_hr_leave msgid "Time Off" diff --git a/hr_holidays_natural_period/static/description/index.html b/hr_holidays_natural_period/static/description/index.html index dcef5099..c082dc70 100644 --- a/hr_holidays_natural_period/static/description/index.html +++ b/hr_holidays_natural_period/static/description/index.html @@ -367,7 +367,7 @@

Holidays natural period

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

This module was written to define natural day option in request unit on holidays type.

Table of contents

@@ -400,7 +400,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -433,7 +433,7 @@

Maintainers

promote its widespread use.

Current maintainer:

victoralmau

-

This module is part of the OCA/hr-holidays project on GitHub.

+

This module is part of the OCA/hr-holidays project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index 06fc5e63..be83680e 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -4,17 +4,13 @@ from odoo.tests import Form, common -class TestHrLeave(common.SavepointCase): +class TestHrLeave(common.TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() cls.HrLeave = cls.env["hr.leave"] - cls.leave_type = cls.env["hr.leave.type"].create( - { - "name": "Test partner", - "request_unit": "natural_day", - "responsible_id": cls.env.ref("base.user_admin").id, - } + cls.leave_type = cls.env.ref( + "hr_holidays_natural_period.hr_leave_type_natural_day_test" ) calendar = cls.env.ref("resource.resource_calendar_std") calendar = calendar.copy({"name": "Test calendar"}) From d86b7b6516c40c1421e48eae93476a77b167b2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 24 Feb 2023 11:06:24 +0000 Subject: [PATCH 11/20] Added translation using Weblate (Spanish) --- hr_holidays_natural_period/i18n/es.po | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 hr_holidays_natural_period/i18n/es.po diff --git a/hr_holidays_natural_period/i18n/es.po b/hr_holidays_natural_period/i18n/es.po new file mode 100644 index 00000000..3a3a3bb0 --- /dev/null +++ b/hr_holidays_natural_period/i18n/es.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_holidays_natural_period +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-02-24 13:23+0000\n" +"Last-Translator: Víctor Martínez \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.14.1\n" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day +msgid "Natural day" +msgstr "Día natural" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_resource_calendar +msgid "Resource Working Time" +msgstr "Tiempo de Trabajo de Recursos" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__request_unit +msgid "Take Time Off in" +msgstr "Coger ausencia en" + +#. module: hr_holidays_natural_period +#: model:hr.leave.type,name:hr_holidays_natural_period.hr_leave_type_natural_day_test +msgid "Test Time Off (natural day)" +msgstr "" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave +msgid "Time Off" +msgstr "Ausencias" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave_type +msgid "Time Off Type" +msgstr "Tipo de ausencia" From bc4cd7aef22859fab5ac203a29ad33de46586d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 19 Apr 2023 09:57:14 +0200 Subject: [PATCH 12/20] [FIX] hr_holidays_natural_period: Avoid error when saving leave TT42608 --- hr_holidays_natural_period/__manifest__.py | 2 +- .../demo/hr_leave_type_data.xml | 1 + .../models/hr_leave_type.py | 21 ++++- .../tests/test_hr_leave.py | 83 ++++++++++++++----- 4 files changed, 86 insertions(+), 21 deletions(-) diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index b8fc6aaf..0b7f5a8d 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "15.0.1.0.0", + "version": "15.0.1.0.1", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_holidays_natural_period/demo/hr_leave_type_data.xml b/hr_holidays_natural_period/demo/hr_leave_type_data.xml index 6aeb0841..a10abd02 100644 --- a/hr_holidays_natural_period/demo/hr_leave_type_data.xml +++ b/hr_holidays_natural_period/demo/hr_leave_type_data.xml @@ -4,5 +4,6 @@ Test Time Off (natural day) natural_day + yes diff --git a/hr_holidays_natural_period/models/hr_leave_type.py b/hr_holidays_natural_period/models/hr_leave_type.py index 8088f9bb..269146dc 100644 --- a/hr_holidays_natural_period/models/hr_leave_type.py +++ b/hr_holidays_natural_period/models/hr_leave_type.py @@ -1,4 +1,4 @@ -# Copyright 2020 Tecnativa - Víctor Martínez +# Copyright 2020-2023 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import fields, models @@ -11,3 +11,22 @@ class HrLeaveType(models.Model): selection_add=[("natural_day", "Natural day")], ondelete={"natural_day": "set default"}, ) + + def _get_employees_days_per_allocation(self, employee_ids, date=None): + """We need to set request_unit as 'day' to avoid the calculations being done + as hours. + Related code: + hr_holidays/models/hr_leave_type.py#L313 + hr_holidays/models/hr_leave_type.py#L367 + """ + old_request_unit_data = {} + for item in self.filtered(lambda x: x.request_unit == "natural_day"): + old_request_unit_data[item.id] = item.request_unit + item.sudo().request_unit = "day" + res = super()._get_employees_days_per_allocation( + employee_ids=employee_ids, date=date + ) + for item in self: + if item.id in old_request_unit_data: + item.sudo().request_unit = old_request_unit_data[item.id] + return res diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index be83680e..ea472f6a 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -1,7 +1,9 @@ -# Copyright 2020-2022 Tecnativa - Víctor Martínez +# Copyright 2020-2023 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.tests import Form, common +from odoo import fields +from odoo.tests import Form, common, new_test_user +from odoo.tests.common import users class TestHrLeave(common.TransactionCase): @@ -12,6 +14,8 @@ def setUpClass(cls): cls.leave_type = cls.env.ref( "hr_holidays_natural_period.hr_leave_type_natural_day_test" ) + cls.leave_type_day = cls.env.ref("hr_holidays.holiday_status_cl") + cls.leave_type_day.employee_requests = "yes" calendar = cls.env.ref("resource.resource_calendar_std") calendar = calendar.copy({"name": "Test calendar"}) calendar.switch_calendar_type() @@ -32,32 +36,73 @@ def setUpClass(cls): "country_id": cls.env.ref("base.es").id, } ) + ctx = { + "mail_create_nolog": True, + "mail_create_nosubscribe": True, + "mail_notrack": True, + "no_reset_password": True, + } + cls.user = new_test_user( + cls.env, + login="test-user", + context=ctx, + ) cls.employee = cls.env["hr.employee"].create( { "name": "Test employee", "address_home_id": partner.id, "resource_calendar_id": calendar.id, + "user_id": cls.user.id, } ) - def test_hr_leave_natural_day(self): - leave_form = Form( - self.HrLeave.with_context( - default_employee_id=self.employee.id, + def _create_leave_allocation(self, leave_type, days): + leave_allocation_form = Form( + self.env["hr.leave.allocation"].with_context( + default_date_from="2021-01-01", + default_date_to="%s-12-31" % (fields.Date.today().year), ) ) - leave_form.holiday_status_id = self.leave_type - leave_form.request_date_from = "2021-01-02" - leave_form.request_date_to = "2021-01-05" - self.assertEqual(leave_form.number_of_days, 4.0) + leave_allocation_form.name = "TEST" + leave_allocation_form.holiday_status_id = leave_type + leave_allocation_form.number_of_days_display = days + return leave_allocation_form.save() + def _create_hr_leave(self, leave_type, date_from, date_to): + leave_form = Form(self.env["hr.leave"]) + leave_form.holiday_status_id = leave_type + leave_form.request_date_from = date_from + leave_form.request_date_to = date_to + return leave_form.save() + + @users("test-user") + def test_hr_leave_natural_day(self): + leave_allocation = self._create_leave_allocation(self.leave_type, 5) + leave_allocation.action_confirm() + leave_allocation.sudo().action_validate() + res_leave_type = self.env["hr.leave.type"].get_days_all_request()[0][1] + self.assertEqual(res_leave_type["remaining_leaves"], "5") + self.assertEqual(res_leave_type["virtual_remaining_leaves"], "5") + self.assertEqual(res_leave_type["max_leaves"], "5") + self.assertEqual(res_leave_type["leaves_taken"], "0") + self.assertEqual(res_leave_type["virtual_leaves_taken"], "0") + self.assertEqual(res_leave_type["request_unit"], "natural_day") + leave = self._create_hr_leave(self.leave_type, "2021-01-02", "2021-01-05") + self.assertEqual(leave.number_of_days, 4.0) + self.assertEqual(leave.number_of_days_display, 4.0) + + @users("test-user") def test_hr_leave_day(self): - leave_form = Form( - self.HrLeave.with_context( - default_employee_id=self.employee.id, - ) - ) - leave_form.holiday_status_id = self.env.ref("hr_holidays.holiday_status_cl") - leave_form.request_date_from = "2021-01-02" # Saturday - leave_form.request_date_to = "2021-01-04" # Monday - self.assertEqual(leave_form.number_of_days, 1) + leave_allocation = self._create_leave_allocation(self.leave_type_day, 5) + leave_allocation.action_confirm() + leave_allocation.sudo().action_validate() + res_leave_type = self.env["hr.leave.type"].get_days_all_request()[0][1] + self.assertEqual(res_leave_type["remaining_leaves"], "5") + self.assertEqual(res_leave_type["virtual_remaining_leaves"], "5") + self.assertEqual(res_leave_type["max_leaves"], "5") + self.assertEqual(res_leave_type["leaves_taken"], "0") + self.assertEqual(res_leave_type["virtual_leaves_taken"], "0") + self.assertEqual(res_leave_type["request_unit"], "day") + leave = self._create_hr_leave(self.leave_type_day, "2021-01-02", "2021-01-04") + self.assertEqual(leave.number_of_days, 1) + self.assertEqual(leave.number_of_days_display, 1) From 71e182db8fa0c786598757ad9badaf79243b60cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 8 May 2023 09:38:48 +0200 Subject: [PATCH 13/20] [IMP] hr_holidays_natural_period: Add freeze_time to prevent errors in tests --- hr_holidays_natural_period/__manifest__.py | 2 +- .../tests/test_hr_leave.py | 23 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index 0b7f5a8d..b86d29aa 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "15.0.1.0.1", + "version": "15.0.1.0.2", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index ea472f6a..4454b610 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -1,15 +1,26 @@ # Copyright 2020-2023 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from freezegun import freeze_time from odoo import fields from odoo.tests import Form, common, new_test_user from odoo.tests.common import users +@freeze_time("2021-01-01", tick=True) class TestHrLeave(common.TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() + cls.env = cls.env( + context=dict( + cls.env.context, + mail_create_nolog=True, + mail_create_nosubscribe=True, + mail_notrack=True, + no_reset_password=True, + ) + ) cls.HrLeave = cls.env["hr.leave"] cls.leave_type = cls.env.ref( "hr_holidays_natural_period.hr_leave_type_natural_day_test" @@ -36,17 +47,7 @@ def setUpClass(cls): "country_id": cls.env.ref("base.es").id, } ) - ctx = { - "mail_create_nolog": True, - "mail_create_nosubscribe": True, - "mail_notrack": True, - "no_reset_password": True, - } - cls.user = new_test_user( - cls.env, - login="test-user", - context=ctx, - ) + cls.user = new_test_user(cls.env, login="test-user") cls.employee = cls.env["hr.employee"].create( { "name": "Test employee", From f9ce6de4ce6d531b584a5e67eb24529a0d1f5361 Mon Sep 17 00:00:00 2001 From: Jose Luis Algara Toledo Date: Fri, 23 Jun 2023 12:33:59 +0200 Subject: [PATCH 14/20] [MIG] hr_holidays_natural_period: Migration to 16.0 --- hr_holidays_natural_period/README.rst | 10 +++++----- hr_holidays_natural_period/__manifest__.py | 2 +- .../i18n/hr_holidays_natural_period.pot | 2 +- .../static/description/index.html | 6 +++--- hr_holidays_natural_period/tests/test_hr_leave.py | 12 ++++++------ 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/hr_holidays_natural_period/README.rst b/hr_holidays_natural_period/README.rst index fb8c3b17..3f03d8b2 100644 --- a/hr_holidays_natural_period/README.rst +++ b/hr_holidays_natural_period/README.rst @@ -14,13 +14,13 @@ Holidays natural period :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr--holidays-lightgray.png?logo=github - :target: https://github.com/OCA/hr-holidays/tree/15.0/hr_holidays_natural_period + :target: https://github.com/OCA/hr-holidays/tree/16.0/hr_holidays_natural_period :alt: OCA/hr-holidays .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/hr-holidays-15-0/hr-holidays-15-0-hr_holidays_natural_period + :target: https://translation.odoo-community.org/projects/hr-holidays-16-0/hr-holidays-16-0-hr_holidays_natural_period :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/290/15.0 + :target: https://runbot.odoo-community.org/runbot/290/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -51,7 +51,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -92,6 +92,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/hr-holidays `_ project on GitHub. +This module is part of the `OCA/hr-holidays `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_holidays_natural_period/__manifest__.py b/hr_holidays_natural_period/__manifest__.py index b86d29aa..3da4f0da 100644 --- a/hr_holidays_natural_period/__manifest__.py +++ b/hr_holidays_natural_period/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Holidays natural period", "summary": "Apply natural days in holidays", - "version": "15.0.1.0.2", + "version": "16.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/hr-holidays", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot index 34dc98cb..9b86f43b 100644 --- a/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot +++ b/hr_holidays_natural_period/i18n/hr_holidays_natural_period.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/hr_holidays_natural_period/static/description/index.html b/hr_holidays_natural_period/static/description/index.html index c082dc70..bb46d773 100644 --- a/hr_holidays_natural_period/static/description/index.html +++ b/hr_holidays_natural_period/static/description/index.html @@ -367,7 +367,7 @@

Holidays natural period

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/hr-holidays Translate me on Weblate Try me on Runbot

This module was written to define natural day option in request unit on holidays type.

Table of contents

@@ -400,7 +400,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -433,7 +433,7 @@

Maintainers

promote its widespread use.

Current maintainer:

victoralmau

-

This module is part of the OCA/hr-holidays project on GitHub.

+

This module is part of the OCA/hr-holidays project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/hr_holidays_natural_period/tests/test_hr_leave.py b/hr_holidays_natural_period/tests/test_hr_leave.py index 4454b610..cd6be330 100644 --- a/hr_holidays_natural_period/tests/test_hr_leave.py +++ b/hr_holidays_natural_period/tests/test_hr_leave.py @@ -7,7 +7,7 @@ from odoo.tests.common import users -@freeze_time("2021-01-01", tick=True) +@freeze_time("2023-01-01", tick=True) class TestHrLeave(common.TransactionCase): @classmethod def setUpClass(cls): @@ -60,7 +60,7 @@ def setUpClass(cls): def _create_leave_allocation(self, leave_type, days): leave_allocation_form = Form( self.env["hr.leave.allocation"].with_context( - default_date_from="2021-01-01", + default_date_from="2023-01-01", default_date_to="%s-12-31" % (fields.Date.today().year), ) ) @@ -88,7 +88,7 @@ def test_hr_leave_natural_day(self): self.assertEqual(res_leave_type["leaves_taken"], "0") self.assertEqual(res_leave_type["virtual_leaves_taken"], "0") self.assertEqual(res_leave_type["request_unit"], "natural_day") - leave = self._create_hr_leave(self.leave_type, "2021-01-02", "2021-01-05") + leave = self._create_hr_leave(self.leave_type, "2023-01-02", "2023-01-05") self.assertEqual(leave.number_of_days, 4.0) self.assertEqual(leave.number_of_days_display, 4.0) @@ -104,6 +104,6 @@ def test_hr_leave_day(self): self.assertEqual(res_leave_type["leaves_taken"], "0") self.assertEqual(res_leave_type["virtual_leaves_taken"], "0") self.assertEqual(res_leave_type["request_unit"], "day") - leave = self._create_hr_leave(self.leave_type_day, "2021-01-02", "2021-01-04") - self.assertEqual(leave.number_of_days, 1) - self.assertEqual(leave.number_of_days_display, 1) + leave = self._create_hr_leave(self.leave_type_day, "2023-01-08", "2023-01-15") + self.assertEqual(leave.number_of_days, 5) + self.assertEqual(leave.number_of_days_display, 5) From 4e01ee6aed0ab5f2a0968072012296fec437bb09 Mon Sep 17 00:00:00 2001 From: mymage Date: Sat, 8 Jul 2023 10:28:52 +0000 Subject: [PATCH 15/20] Added translation using Weblate (Italian) --- hr_holidays_natural_period/i18n/it.po | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 hr_holidays_natural_period/i18n/it.po diff --git a/hr_holidays_natural_period/i18n/it.po b/hr_holidays_natural_period/i18n/it.po new file mode 100644 index 00000000..dc16d884 --- /dev/null +++ b/hr_holidays_natural_period/i18n/it.po @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_holidays_natural_period +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-07-10 09:10+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day +msgid "Natural day" +msgstr "Giorno solare" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_resource_calendar +msgid "Resource Working Time" +msgstr "Orario lavoro risorsa" + +#. module: hr_holidays_natural_period +#: model:ir.model.fields,field_description:hr_holidays_natural_period.field_hr_leave_type__request_unit +msgid "Take Time Off in" +msgstr "Prendi ferie in" + +#. module: hr_holidays_natural_period +#: model:hr.leave.type,name:hr_holidays_natural_period.hr_leave_type_natural_day_test +msgid "Test Time Off (natural day)" +msgstr "Testa ferie (giorno solare)" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave +msgid "Time Off" +msgstr "Ferie" + +#. module: hr_holidays_natural_period +#: model:ir.model,name:hr_holidays_natural_period.model_hr_leave_type +msgid "Time Off Type" +msgstr "Tipo di ferie" From 40744eb47bb3e42bc8266857b13023b206a2512f Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Fri, 4 Aug 2023 10:11:49 +0000 Subject: [PATCH 16/20] Translated using Weblate (Spanish) Currently translated at 100.0% (6 of 6 strings) Translation: hr-holidays-16.0/hr-holidays-16.0-hr_holidays_natural_period Translate-URL: https://translation.odoo-community.org/projects/hr-holidays-16-0/hr-holidays-16-0-hr_holidays_natural_period/es/ --- hr_holidays_natural_period/i18n/es.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hr_holidays_natural_period/i18n/es.po b/hr_holidays_natural_period/i18n/es.po index 3a3a3bb0..8e2ca740 100644 --- a/hr_holidays_natural_period/i18n/es.po +++ b/hr_holidays_natural_period/i18n/es.po @@ -6,15 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-02-24 13:23+0000\n" -"Last-Translator: Víctor Martínez \n" +"PO-Revision-Date: 2023-08-04 13:12+0000\n" +"Last-Translator: Ivorra78 \n" "Language-Team: none\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.17\n" #. module: hr_holidays_natural_period #: model:ir.model.fields.selection,name:hr_holidays_natural_period.selection__hr_leave_type__request_unit__natural_day @@ -34,7 +34,7 @@ msgstr "Coger ausencia en" #. module: hr_holidays_natural_period #: model:hr.leave.type,name:hr_holidays_natural_period.hr_leave_type_natural_day_test msgid "Test Time Off (natural day)" -msgstr "" +msgstr "Tiempo libre de prueba (día natural)" #. module: hr_holidays_natural_period #: model:ir.model,name:hr_holidays_natural_period.model_hr_leave From 47e5cfabe499ba68bb484540edd399d751d6980b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 13:14:19 +0000 Subject: [PATCH 17/20] [UPD] README.rst --- hr_holidays_natural_period/README.rst | 15 ++++--- .../static/description/index.html | 40 ++++++++++--------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/hr_holidays_natural_period/README.rst b/hr_holidays_natural_period/README.rst index 3f03d8b2..d6bc624e 100644 --- a/hr_holidays_natural_period/README.rst +++ b/hr_holidays_natural_period/README.rst @@ -2,10 +2,13 @@ Holidays natural period ======================= -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:0b0a206e485af0f5c4094fa2bcbae20798f0851e9c4ea64780c959e24e21821d + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Holidays natural period .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/hr-holidays-16-0/hr-holidays-16-0-hr_holidays_natural_period :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/290/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/hr-holidays&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module was written to define natural day option in request unit on holidays type. @@ -50,7 +53,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/hr_holidays_natural_period/static/description/index.html b/hr_holidays_natural_period/static/description/index.html index bb46d773..3f03d8b8 100644 --- a/hr_holidays_natural_period/static/description/index.html +++ b/hr_holidays_natural_period/static/description/index.html @@ -1,20 +1,20 @@ - + - + Holidays natural period