From c525328b2d2b26ac16be06beafde7e70af1bdd6a Mon Sep 17 00:00:00 2001 From: Oihane Crucelaegui Date: Tue, 3 Aug 2021 12:36:22 +0200 Subject: [PATCH] [ADD] New module hr_employee_birthdate_reminder --- hr_employee_birthdate_reminder/README.rst | 45 ++++ hr_employee_birthdate_reminder/__init__.py | 2 + .../__manifest__.py | 21 ++ hr_employee_birthdate_reminder/i18n/es.po | 209 ++++++++++++++++++ hr_employee_birthdate_reminder/i18n/eu_ES.po | 209 ++++++++++++++++++ .../i18n/hr_employee_birthdate_reminder.pot | 209 ++++++++++++++++++ .../models/__init__.py | 1 + .../models/hr_employee.py | 62 ++++++ .../reports/__init__.py | 2 + .../reports/hr_employee_birthdate_report.py | 84 +++++++ .../hr_employee_birthdate_report_view.xml | 79 +++++++ .../reports/hr_employee_birthday_report.py | 43 ++++ .../hr_employee_birthday_report_view.xml | 39 ++++ .../security/ir.model.access.csv | 3 + .../static/src/img/birthdaycake.png | Bin 0 -> 1401 bytes .../tests/__init__.py | 1 + .../tests/common.py | 26 +++ .../tests/test_employee_birthdate_reminder.py | 27 +++ .../views/hr_employee_view.xml | 35 +++ 19 files changed, 1097 insertions(+) create mode 100644 hr_employee_birthdate_reminder/README.rst create mode 100644 hr_employee_birthdate_reminder/__init__.py create mode 100644 hr_employee_birthdate_reminder/__manifest__.py create mode 100644 hr_employee_birthdate_reminder/i18n/es.po create mode 100644 hr_employee_birthdate_reminder/i18n/eu_ES.po create mode 100644 hr_employee_birthdate_reminder/i18n/hr_employee_birthdate_reminder.pot create mode 100644 hr_employee_birthdate_reminder/models/__init__.py create mode 100644 hr_employee_birthdate_reminder/models/hr_employee.py create mode 100644 hr_employee_birthdate_reminder/reports/__init__.py create mode 100644 hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report.py create mode 100644 hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report_view.xml create mode 100644 hr_employee_birthdate_reminder/reports/hr_employee_birthday_report.py create mode 100644 hr_employee_birthdate_reminder/reports/hr_employee_birthday_report_view.xml create mode 100644 hr_employee_birthdate_reminder/security/ir.model.access.csv create mode 100644 hr_employee_birthdate_reminder/static/src/img/birthdaycake.png create mode 100644 hr_employee_birthdate_reminder/tests/__init__.py create mode 100644 hr_employee_birthdate_reminder/tests/common.py create mode 100644 hr_employee_birthdate_reminder/tests/test_employee_birthdate_reminder.py create mode 100644 hr_employee_birthdate_reminder/views/hr_employee_view.xml diff --git a/hr_employee_birthdate_reminder/README.rst b/hr_employee_birthdate_reminder/README.rst new file mode 100644 index 00000000..9fa7ccfe --- /dev/null +++ b/hr_employee_birthdate_reminder/README.rst @@ -0,0 +1,45 @@ +============================= +Employee's birthdate reminder +============================= + +.. |badge1| 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 + +|badge1| + +This module creates new fields, to make it easier to get the birthday. + +* Birthdate month +* Birthdate day +* Birthday today, a computed field to mark if it is the birthday. + +There is also a report that shows the list of today's birthdays. + +**Table of contents** + +.. contents:: + :local: + +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 +~~~~~~~ + +* Avanzosc + +Contributors +~~~~~~~~~~~~ + +* Oihane Crucelaegui diff --git a/hr_employee_birthdate_reminder/__init__.py b/hr_employee_birthdate_reminder/__init__.py new file mode 100644 index 00000000..55ec7fc9 --- /dev/null +++ b/hr_employee_birthdate_reminder/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import reports diff --git a/hr_employee_birthdate_reminder/__manifest__.py b/hr_employee_birthdate_reminder/__manifest__.py new file mode 100644 index 00000000..d1223b2a --- /dev/null +++ b/hr_employee_birthdate_reminder/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2021 Oihane Crucelaegui - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Employee's birthdate reminder", + "version": "12.0.1.0.0", + "category": "Human Resources", + "license": "AGPL-3", + "author": "AvanzOSC", + "website": "http://www.avanzosc.es", + "depends": [ + "hr", + ], + "data": [ + "security/ir.model.access.csv", + "reports/hr_employee_birthdate_report_view.xml", + "reports/hr_employee_birthday_report_view.xml", + "views/hr_employee_view.xml", + ], + "installable": True, +} diff --git a/hr_employee_birthdate_reminder/i18n/es.po b/hr_employee_birthdate_reminder/i18n/es.po new file mode 100644 index 00000000..01d28aa8 --- /dev/null +++ b/hr_employee_birthdate_reminder/i18n/es.po @@ -0,0 +1,209 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_birthdate_reminder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-12 09:31+0000\n" +"PO-Revision-Date: 2021-08-12 09:31+0000\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_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "April" +msgstr "Abril" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "August" +msgstr "Agosto" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate +msgid "Birthdate" +msgstr "Fecha de nacimiento" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthdate_day +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_day +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_day +msgid "Birthdate Day" +msgstr "Día de nacimiento" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthdate_month +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_month +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_month +msgid "Birthdate Month" +msgstr "Mes de nacimiento" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_year +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_year +msgid "Birthdate Year" +msgstr "Año de nacimiento" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthday_today +msgid "Birthday's Today" +msgstr "Cumpleaños hoy" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_view_search +msgid "Birthday's today" +msgstr "Cumpleaños hoy" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Current Month" +msgstr "Mes actual" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "December" +msgstr "Diciembre" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__display_name +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__employee_id +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__employee_id +msgid "Employee" +msgstr "Empleado" + +#. module: hr_employee_birthdate_reminder +#: model:ir.actions.act_window,name:hr_employee_birthdate_reminder.action_hr_employee_birthdate_report +#: model:ir.ui.menu,name:hr_employee_birthdate_reminder.action_hr_employee_birthdate_report_menuitem +msgid "Employee's Birthdate" +msgstr "Fechas de nacimiento de empleados" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee_birthdate_report +msgid "Employee's Birthdate Report" +msgstr "Informe de fechas de nacimiento de empleados" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee_birthday_report +msgid "Employee's Birthday Report" +msgstr "Informe de cumpleaños de empleados" + +#. module: hr_employee_birthdate_reminder +#: model:ir.actions.act_window,name:hr_employee_birthdate_reminder.action_hr_employee_birthday_report +#: model:ir.ui.menu,name:hr_employee_birthdate_reminder.action_hr_employee_birthday_report_menuitem +msgid "Employee's Birthdays" +msgstr "Cumpleaños de empleados" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "February" +msgstr "Febrero" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__id +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__id +msgid "ID" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "January" +msgstr "Enero" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "July" +msgstr "Julio" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "June" +msgstr "Junio" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report____last_update +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "March" +msgstr "Marzo" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "May" +msgstr "Mayo" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Month" +msgstr "Mes" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "November" +msgstr "Noviembre" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "October" +msgstr "Octubre" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "September" +msgstr "Septiembre" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Today" +msgstr "Hoy" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Year" +msgstr "Año" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_view_kanban +msgid "birthdate cake" +msgstr "tarta de cumpleaños" + diff --git a/hr_employee_birthdate_reminder/i18n/eu_ES.po b/hr_employee_birthdate_reminder/i18n/eu_ES.po new file mode 100644 index 00000000..1e742ee3 --- /dev/null +++ b/hr_employee_birthdate_reminder/i18n/eu_ES.po @@ -0,0 +1,209 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_birthdate_reminder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-12 09:31+0000\n" +"PO-Revision-Date: 2021-08-12 09:31+0000\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_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "April" +msgstr "Apirila" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "August" +msgstr "Abuztua" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate +msgid "Birthdate" +msgstr "Jaiotzadata" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthdate_day +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_day +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_day +msgid "Birthdate Day" +msgstr "Jaiotza eguna" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthdate_month +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_month +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_month +msgid "Birthdate Month" +msgstr "Jaiotza hila" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_year +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_year +msgid "Birthdate Year" +msgstr "Jaiotza urtea" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthday_today +msgid "Birthday's Today" +msgstr "Urtebetetzea gaur" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_view_search +msgid "Birthday's today" +msgstr "Urtebetetzea gaur" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Current Month" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "December" +msgstr "Abendua" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__display_name +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__display_name +msgid "Display Name" +msgstr "Izena erakutsi" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__employee_id +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__employee_id +msgid "Employee" +msgstr "Langilea" + +#. module: hr_employee_birthdate_reminder +#: model:ir.actions.act_window,name:hr_employee_birthdate_reminder.action_hr_employee_birthdate_report +#: model:ir.ui.menu,name:hr_employee_birthdate_reminder.action_hr_employee_birthdate_report_menuitem +msgid "Employee's Birthdate" +msgstr "Langilearen jaiotzadata" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee_birthdate_report +msgid "Employee's Birthdate Report" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee_birthday_report +msgid "Employee's Birthday Report" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.actions.act_window,name:hr_employee_birthdate_reminder.action_hr_employee_birthday_report +#: model:ir.ui.menu,name:hr_employee_birthdate_reminder.action_hr_employee_birthday_report_menuitem +msgid "Employee's Birthdays" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "February" +msgstr "Otsaila" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__id +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__id +msgid "ID" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "January" +msgstr "Urtarrila" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "July" +msgstr "Uztaila" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "June" +msgstr "Ekaina" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report____last_update +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report____last_update +msgid "Last Modified on" +msgstr "Azken aldaketa" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "March" +msgstr "Martxoa" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "May" +msgstr "Maiatza" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Month" +msgstr "Hilabetea" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "November" +msgstr "Azaroa" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "October" +msgstr "Urria" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "September" +msgstr "Iraila" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Today" +msgstr "Gaur" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Year" +msgstr "Urtea" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_view_kanban +msgid "birthdate cake" +msgstr "urtebetetze pastela" + diff --git a/hr_employee_birthdate_reminder/i18n/hr_employee_birthdate_reminder.pot b/hr_employee_birthdate_reminder/i18n/hr_employee_birthdate_reminder.pot new file mode 100644 index 00000000..d71ce694 --- /dev/null +++ b/hr_employee_birthdate_reminder/i18n/hr_employee_birthdate_reminder.pot @@ -0,0 +1,209 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_birthdate_reminder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-12 09:30+0000\n" +"PO-Revision-Date: 2021-08-12 09:30+0000\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_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "April" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "August" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate +msgid "Birthdate" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthdate_day +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_day +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_day +msgid "Birthdate Day" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthdate_month +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_month +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_month +msgid "Birthdate Month" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__birthdate_year +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__birthdate_year +msgid "Birthdate Year" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee__birthday_today +msgid "Birthday's Today" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_view_search +msgid "Birthday's today" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Current Month" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "December" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__display_name +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__employee_id +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__employee_id +msgid "Employee" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.actions.act_window,name:hr_employee_birthdate_reminder.action_hr_employee_birthdate_report +#: model:ir.ui.menu,name:hr_employee_birthdate_reminder.action_hr_employee_birthdate_report_menuitem +msgid "Employee's Birthdate" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee_birthdate_report +msgid "Employee's Birthdate Report" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model,name:hr_employee_birthdate_reminder.model_hr_employee_birthday_report +msgid "Employee's Birthday Report" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.actions.act_window,name:hr_employee_birthdate_reminder.action_hr_employee_birthday_report +#: model:ir.ui.menu,name:hr_employee_birthdate_reminder.action_hr_employee_birthday_report_menuitem +msgid "Employee's Birthdays" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "February" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report__id +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report__id +msgid "ID" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "January" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "July" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "June" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthdate_report____last_update +#: model:ir.model.fields,field_description:hr_employee_birthdate_reminder.field_hr_employee_birthday_report____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "March" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "May" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Month" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "November" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "October" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: selection:hr.employee.birthdate.report,birthdate_month:0 +#: selection:hr.employee.birthday.report,birthdate_month:0 +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "September" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Today" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_birthdate_report_view_search +msgid "Year" +msgstr "" + +#. module: hr_employee_birthdate_reminder +#: model_terms:ir.ui.view,arch_db:hr_employee_birthdate_reminder.hr_employee_view_kanban +msgid "birthdate cake" +msgstr "" + diff --git a/hr_employee_birthdate_reminder/models/__init__.py b/hr_employee_birthdate_reminder/models/__init__.py new file mode 100644 index 00000000..e11a62f9 --- /dev/null +++ b/hr_employee_birthdate_reminder/models/__init__.py @@ -0,0 +1 @@ +from . import hr_employee diff --git a/hr_employee_birthdate_reminder/models/hr_employee.py b/hr_employee_birthdate_reminder/models/hr_employee.py new file mode 100644 index 00000000..7cfd5cf5 --- /dev/null +++ b/hr_employee_birthdate_reminder/models/hr_employee.py @@ -0,0 +1,62 @@ +# Copyright 2021 Oihane Crucelaegui - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models +from dateutil.relativedelta import relativedelta + + +class HrEmployee(models.Model): + _inherit = "hr.employee" + + birthdate_day = fields.Integer( + string="Birthdate Day", compute="_compute_birthdate", store=True, + index=True) + birthdate_month = fields.Integer( + string="Birthdate Month", compute="_compute_birthdate", store=True, + index=True) + birthday_today = fields.Boolean( + string="Birthday's Today", compute="_compute_birthday", + search="_search_birthday") + + @api.depends("birthday") + def _compute_birthdate(self): + for record in self.filtered("birthday"): + record.birthdate_day = record.birthday.day + record.birthdate_month = record.birthday.month + + @api.multi + def _compute_birthday(self): + today = fields.Date.context_today(self) + for employee in self.filtered("birthday"): + employee.birthday_today = ( + employee.birthdate_day == today.day and + employee.birthdate_month == today.month) + + @api.multi + def _search_birthday(self, operator, value): + today = fields.Date.context_today(self) + if operator != '=': + if operator == '!=' and isinstance(value, bool): + value = not value + else: + raise NotImplementedError() + employees = self.search_birthdate(today) + if value: + search_operator = "in" + else: + search_operator = "not in" + return [('id', search_operator, employees.ids)] + + def next_week_birthday(self): + today = fields.Date.context_today(self) + employees = self.env["hr.employee"] + for days in range(1, 8): + new_date = today + relativedelta(days=days) + employees |= self.search_birthdate(new_date) + return employees + + def search_birthdate(self, birthdate): + return self.search([ + ("birthdate_day", "=", birthdate.day), + ("birthdate_month", "=", birthdate.month), + ]) diff --git a/hr_employee_birthdate_reminder/reports/__init__.py b/hr_employee_birthdate_reminder/reports/__init__.py new file mode 100644 index 00000000..04d73117 --- /dev/null +++ b/hr_employee_birthdate_reminder/reports/__init__.py @@ -0,0 +1,2 @@ +from . import hr_employee_birthdate_report +from . import hr_employee_birthday_report diff --git a/hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report.py b/hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report.py new file mode 100644 index 00000000..cfd4d22d --- /dev/null +++ b/hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report.py @@ -0,0 +1,84 @@ +# Copyright 2021 Oihane Crucelaegui - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models, tools +from psycopg2.extensions import AsIs + +MONTH_SELECTION = [(1, 'January'), + (2, 'February'), + (3, 'March'), + (4, 'April'), + (5, 'May'), + (6, 'June'), + (7, 'July'), + (8, 'August'), + (9, 'September'), + (10, 'October'), + (11, 'November'), + (12, 'December')] + + +class HrEmployeeBirthdateReport(models.Model): + _name = "hr.employee.birthdate.report" + _description = "Employee's Birthdate Report" + _auto = False + _rec_name = "employee_id" + + employee_id = fields.Many2one(comodel_name="hr.employee") + birthdate = fields.Date() + birthdate_day = fields.Integer() + birthdate_month = fields.Selection(selection=MONTH_SELECTION) + birthdate_year = fields.Integer() + + _depends = { + "hr.employee": [ + "birthday", + ], + } + + def _select(self): + select_str = """ + SELECT + row_number() OVER () as id, + emp.id as employee_id, + emp.birthday as birthdate, + EXTRACT (YEAR FROM birthday) AS birthdate_year, + EXTRACT (MONTH FROM birthday) AS birthdate_month, + EXTRACT (DAY FROM birthday) AS birthdate_day + """ + return select_str + + def _from(self): + from_str = """ + FROM + hr_employee emp + """ + return from_str + + def _where(self): + where_str = """ + WHERE + emp.birthday IS NOT NULL + AND + active = True + """ + return where_str + + def _group_by(self): + group_by_str = """ + GROUP BY + emp.id, emp.birthday + """ + return group_by_str + + @api.model_cr + def init(self): + tools.drop_view_if_exists(self.env.cr, self._table) + self.env.cr.execute( + """CREATE or REPLACE VIEW %s as + ( + %s %s %s %s + )""", ( + AsIs(self._table), AsIs(self._select()), + AsIs(self._from()), AsIs(self._where()), + AsIs(self._group_by()),)) diff --git a/hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report_view.xml b/hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report_view.xml new file mode 100644 index 00000000..dd41a609 --- /dev/null +++ b/hr_employee_birthdate_reminder/reports/hr_employee_birthdate_report_view.xml @@ -0,0 +1,79 @@ + + + + hr.employee.birthdate.report + + + + + + + + + + + + + hr.employee.birthdate.report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Employee's Birthdate + hr.employee.birthdate.report + form + tree + + + + + diff --git a/hr_employee_birthdate_reminder/reports/hr_employee_birthday_report.py b/hr_employee_birthdate_reminder/reports/hr_employee_birthday_report.py new file mode 100644 index 00000000..486745ab --- /dev/null +++ b/hr_employee_birthdate_reminder/reports/hr_employee_birthday_report.py @@ -0,0 +1,43 @@ +# Copyright 2021 Oihane Crucelaegui - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, models, tools +from psycopg2.extensions import AsIs + + +class HrEmployeeBirthdateReport(models.Model): + _name = "hr.employee.birthday.report" + _inherit = "hr.employee.birthdate.report" + _description = "Employee's Birthdate Report" + _auto = False + _rec_name = "employee_id" + + def _select(self): + return super(HrEmployeeBirthdateReport, self)._select() + + def _from(self): + return super(HrEmployeeBirthdateReport, self)._from() + + def _where(self): + where_str = """ + AND + DATE_PART('day', birthday) = date_part('day', CURRENT_DATE) + AND + DATE_PART('month', birthday) = date_part('month', CURRENT_DATE) + """ + return super(HrEmployeeBirthdateReport, self)._where() + where_str + + def _group_by(self): + return super(HrEmployeeBirthdateReport, self)._group_by() + + @api.model_cr + def init(self): + tools.drop_view_if_exists(self.env.cr, self._table) + self.env.cr.execute( + """CREATE or REPLACE VIEW %s as + ( + %s %s %s %s + )""", ( + AsIs(self._table), AsIs(self._select()), + AsIs(self._from()), AsIs(self._where()), + AsIs(self._group_by()),)) diff --git a/hr_employee_birthdate_reminder/reports/hr_employee_birthday_report_view.xml b/hr_employee_birthdate_reminder/reports/hr_employee_birthday_report_view.xml new file mode 100644 index 00000000..6db41fd2 --- /dev/null +++ b/hr_employee_birthdate_reminder/reports/hr_employee_birthday_report_view.xml @@ -0,0 +1,39 @@ + + + + hr.employee.birthday.report + + + + + + + + + + + + + hr.employee.birthday.report + + + + + + + + + + Employee's Birthdays + hr.employee.birthday.report + form + tree + + + + + diff --git a/hr_employee_birthdate_reminder/security/ir.model.access.csv b/hr_employee_birthdate_reminder/security/ir.model.access.csv new file mode 100644 index 00000000..3368c445 --- /dev/null +++ b/hr_employee_birthdate_reminder/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_hr_employee_birthdate_report,hr_employee_birthdate_report all,model_hr_employee_birthdate_report,,1,0,0,0 +access_hr_employee_birthday_report,hr_employee_birthday_report all,model_hr_employee_birthday_report,,1,0,0,0 diff --git a/hr_employee_birthdate_reminder/static/src/img/birthdaycake.png b/hr_employee_birthdate_reminder/static/src/img/birthdaycake.png new file mode 100644 index 0000000000000000000000000000000000000000..22f6f51b2c153074f3ec8359db30755ae17359fd GIT binary patch literal 1401 zcmV-<1%~>GP)E; zC$W>psahdg5UPmMj1o0ON+lMR%45R{7E}rd1R@JsK|x3$q!xi-!9!vd7APRKK~PYI zXj3UrR3&Zm!cCgS&clg4PV6}Lcvz%v?ckAVOT?yUH8bb__k8!xKX-sC8fj@^^}K$7 z>IbNMsV$1EHXy%q=NCh=++N8G_4M?HdU|>*c|)??o^Njc^1c8r$a1HD&z`5mQ0SBX zEvq@#+Uj>UH63#{H61(G+UhU$`deC9sj=~6|L)yKF357{JppI{AqIo*8?9DCYG~Nm z(9rNgsbA~!y=C)yd7IbEJG|bvOTAz)_`FzO-+Zg~0}UYV8sK6_M|W)?um>y)n&VI# z2)v@*8b8$5=Ck{J&k!^Xf~Mi{`=1_aYxCU#C+&X!t2D;}EDJ|n-R_GW9o=^gz}xMe zoXG?x90n;#FxhPWi?ZAd04hngnEmGJV}DG*+9A7SXY!}Mpb7vtH_bHL_(uH9#9?+)>c+Df*?i#KvmV5 zbwx>1ZZ{~K4SABpdNMhpm!ta$eL6Y$=eWgUS5wlT=;h1LJ%0A=RRH)r5{Vsg zIO19^_ed%dNyjc-di~KeX9fV^tLf>DBUbArEtlJ$URYqF=g)uk(7?dE#{sQUj&5@R zz`-}pxEbW!1(1b8io7~_sykcsI$rzHQd7tT0brdpO#Sp;XR_#Z9X-vFLLp3|K<2|H0U7@DncLsxj0W`$s=da9+FFZVWsyo}$H&9;}2o2k;7CQhW63OMr z^z6RxPaKSN9X-wMXq5hNxtuKkflMZon;f4y^zDhR!Ad#0Jz%k04@r{92m%j55a4n; zTS%c01^^T&+3)k%H$5IcpT~|uP6hx{D1==uXNw>R5Ck5QBr+De^^jhUE&xFgTRZ|J zD01_PAPIsf9Sdli{Y0WbR@hkGUaNW(Z?_%*JOC(b*I(Xjqq$w)KGEgwO6K^WMw`W= zS5OP!srXfnQq!porZ!JG0;RRI8lM)}+)`GhjH{|6Oj38&M&y-63$r@47>f>OM{k~J zKYlKMyRLK+ZkM-jZ>xNaimyVc<;wfW?U@W=!+2xJB@0 zD*#|sNgx?rgkjA9zYqifWR}-(bM6|z5Fl~{+$IkgBMYE>cm4qY01U;#Yp&b8F_e2E z?}nynNJSEu&rWUb9A|;QrXB=;=c_ibCivKfigQ#2s3w9SU^dubHrT2UuA=|{Bz*bg zZ_RZf@oPg32SYaAY^-5S+ZmW%&#h%R$F= 7) + min_date = min(birthday_dates) + self.assertEquals(min_date, self.today + relativedelta(days=1)) + max_date = max(birthday_dates) + self.assertEquals(max_date, self.today + relativedelta(days=7)) diff --git a/hr_employee_birthdate_reminder/views/hr_employee_view.xml b/hr_employee_birthdate_reminder/views/hr_employee_view.xml new file mode 100644 index 00000000..5903decb --- /dev/null +++ b/hr_employee_birthdate_reminder/views/hr_employee_view.xml @@ -0,0 +1,35 @@ + + + + hr.employee + + + + + + +
+ birthdate cake +
+
+ +
+ +
+
+
+
+ + + hr.employee + + + + + + + + + +