From 9aeed0a20b91c9622d5135e0fc0a91a8bbe79a9b Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 6 Oct 2020 11:53:45 -0700 Subject: [PATCH 1/9] [ADD] hr_timesheet_work_entry: for Odoo 13 --- hr_timesheet_work_entry/__init__.py | 15 ++++++++++ hr_timesheet_work_entry/__manifest__.py | 22 ++++++++++++++ .../data/hr_timesheet_work_entry_data.xml | 10 +++++++ .../data/hr_timesheet_work_entry_demo.xml | 10 +++++++ hr_timesheet_work_entry/models/__init__.py | 2 ++ hr_timesheet_work_entry/models/timesheet.py | 9 ++++++ hr_timesheet_work_entry/models/work_entry.py | 7 +++++ hr_timesheet_work_entry/tests/__init__.py | 1 + .../tests/test_timesheet_work_type.py | 19 ++++++++++++ .../views/timesheet_views.xml | 30 +++++++++++++++++++ .../views/work_entry_views.xml | 23 ++++++++++++++ 11 files changed, 148 insertions(+) create mode 100644 hr_timesheet_work_entry/__init__.py create mode 100755 hr_timesheet_work_entry/__manifest__.py create mode 100644 hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml create mode 100644 hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml create mode 100644 hr_timesheet_work_entry/models/__init__.py create mode 100644 hr_timesheet_work_entry/models/timesheet.py create mode 100644 hr_timesheet_work_entry/models/work_entry.py create mode 100644 hr_timesheet_work_entry/tests/__init__.py create mode 100644 hr_timesheet_work_entry/tests/test_timesheet_work_type.py create mode 100644 hr_timesheet_work_entry/views/timesheet_views.xml create mode 100644 hr_timesheet_work_entry/views/work_entry_views.xml diff --git a/hr_timesheet_work_entry/__init__.py b/hr_timesheet_work_entry/__init__.py new file mode 100644 index 00000000..6e8e0aba --- /dev/null +++ b/hr_timesheet_work_entry/__init__.py @@ -0,0 +1,15 @@ +from . import models + + +def ts_work_type_pre_init_hook(cr): + """ + This module installs a Work Entry Type with code "TS" + If you have undergone a migration (either for this module + or even your own Payslip Work Entry lines with code "TS") + then the uniqueness constraint will prevent this module + from installing. + """ + cr.execute("UPDATE hr_work_entry_type " + "SET code = 'TS-PRE-INSTALL' " + "WHERE code = 'TS';" + ) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py new file mode 100755 index 00000000..142814bd --- /dev/null +++ b/hr_timesheet_work_entry/__manifest__.py @@ -0,0 +1,22 @@ +{ + 'name': 'Timesheet Work Entry Type', + 'description': 'Set work types on timesheet records.', + 'version': '13.0.1.0.0', + 'website': 'https://hibou.io/', + 'author': 'Hibou Corp. ', + 'license': 'AGPL-3', + 'category': 'Human Resources', + 'depends': [ + 'hr_timesheet', + 'hr_work_entry', + ], + 'data': [ + 'data/hr_timesheet_work_entry_data.xml', + 'views/timesheet_views.xml', + 'views/work_entry_views.xml', + ], + 'demo': [ + 'data/hr_timesheet_work_entry_demo.xml', + ], + 'pre_init_hook': 'ts_work_type_pre_init_hook', +} diff --git a/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml new file mode 100644 index 00000000..cdcd2609 --- /dev/null +++ b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml @@ -0,0 +1,10 @@ + + + + + Timesheet + TS + + + + \ No newline at end of file diff --git a/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml new file mode 100644 index 00000000..996dee41 --- /dev/null +++ b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml @@ -0,0 +1,10 @@ + + + + + Internal + TS_INTERNAL + + + + \ No newline at end of file diff --git a/hr_timesheet_work_entry/models/__init__.py b/hr_timesheet_work_entry/models/__init__.py new file mode 100644 index 00000000..1ea5c2f4 --- /dev/null +++ b/hr_timesheet_work_entry/models/__init__.py @@ -0,0 +1,2 @@ +from . import timesheet +from . import work_entry diff --git a/hr_timesheet_work_entry/models/timesheet.py b/hr_timesheet_work_entry/models/timesheet.py new file mode 100644 index 00000000..f7f3bb9d --- /dev/null +++ b/hr_timesheet_work_entry/models/timesheet.py @@ -0,0 +1,9 @@ +from odoo import api, fields, models + + +class AccountAnalyticLine(models.Model): + _inherit = 'account.analytic.line' + + work_type_id = fields.Many2one('hr.work.entry.type', string='Work Type', + default=lambda self: self.env.ref('hr_timesheet_work_entry.work_input_timesheet', + raise_if_not_found=False)) diff --git a/hr_timesheet_work_entry/models/work_entry.py b/hr_timesheet_work_entry/models/work_entry.py new file mode 100644 index 00000000..eb68353c --- /dev/null +++ b/hr_timesheet_work_entry/models/work_entry.py @@ -0,0 +1,7 @@ +from odoo import fields, models + + +class HrWorkEntryType(models.Model): + _inherit = 'hr.work.entry.type' + + allow_timesheet = fields.Boolean(string='Allow on Timesheet') diff --git a/hr_timesheet_work_entry/tests/__init__.py b/hr_timesheet_work_entry/tests/__init__.py new file mode 100644 index 00000000..962f2f44 --- /dev/null +++ b/hr_timesheet_work_entry/tests/__init__.py @@ -0,0 +1 @@ +from . import test_timesheet_work_type diff --git a/hr_timesheet_work_entry/tests/test_timesheet_work_type.py b/hr_timesheet_work_entry/tests/test_timesheet_work_type.py new file mode 100644 index 00000000..f104e3c7 --- /dev/null +++ b/hr_timesheet_work_entry/tests/test_timesheet_work_type.py @@ -0,0 +1,19 @@ +from odoo.tests import common + + +class TestTimesheetWorkType(common.TransactionCase): + def setUp(self): + super().setUp() + self.employee = self.env.ref('hr.employee_hne') + self.project = self.env.ref('project.project_project_2') + self.default_work_type = self.env.ref('hr_timesheet_work_entry.work_input_timesheet') + + def test_01_work_type(self): + timesheet = self.env['account.analytic.line'].create({ + 'name': '/', + 'employee_id': self.employee.id, + 'unit_amount': 1.0, + 'project_id': self.project.id, + }) + self.assertTrue(timesheet.work_type_id) + self.assertEqual(timesheet.work_type_id, self.default_work_type) diff --git a/hr_timesheet_work_entry/views/timesheet_views.xml b/hr_timesheet_work_entry/views/timesheet_views.xml new file mode 100644 index 00000000..c6380521 --- /dev/null +++ b/hr_timesheet_work_entry/views/timesheet_views.xml @@ -0,0 +1,30 @@ + + + + + account.analytic.line.tree.hr_timesheet.inherit + account.analytic.line + + + + + + + + + + account.analytic.line.form.inherit + account.analytic.line + + + + + + + + + diff --git a/hr_timesheet_work_entry/views/work_entry_views.xml b/hr_timesheet_work_entry/views/work_entry_views.xml new file mode 100644 index 00000000..84f76a7a --- /dev/null +++ b/hr_timesheet_work_entry/views/work_entry_views.xml @@ -0,0 +1,23 @@ + + + + + hr.work.type.view.form.inherit + hr.work.entry.type + + + + + + + + + + + + + \ No newline at end of file From 14d11b31a439be810fab11949ed9d0f1a787c4af Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Fri, 27 Nov 2020 14:46:28 -0800 Subject: [PATCH 2/9] [MIG] hr_timesheet_work_entry: to Odoo 14.0 --- hr_timesheet_work_entry/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index 142814bd..9edc5be3 100755 --- a/hr_timesheet_work_entry/__manifest__.py +++ b/hr_timesheet_work_entry/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Timesheet Work Entry Type', 'description': 'Set work types on timesheet records.', - 'version': '13.0.1.0.0', + 'version': '14.0.1.0.0', 'website': 'https://hibou.io/', 'author': 'Hibou Corp. ', 'license': 'AGPL-3', From aae25a5effe06b8eecf3ea673765e3b66551de12 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 21 Mar 2021 13:35:09 -0700 Subject: [PATCH 3/9] [FIX] hr_payroll_timesheet: Fixes for a database that has gone through multiple Odoo Upgrades Init will run on install, even if the module existed in the prior version. Because these init scripts are intended to clear (and maybe even re-name back on actual init of data), records we should be more generic with the intended name. Additionally, if your database already had `hr_payroll_timesheet` based 'TS' work entry codes, then we cannot delete it if it is used on records like payslips (as a work type). Delete the link to simply stop using the old record, but leave it behind to keep it working. --- hr_timesheet_work_entry/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_timesheet_work_entry/__init__.py b/hr_timesheet_work_entry/__init__.py index 6e8e0aba..e58c8b0b 100644 --- a/hr_timesheet_work_entry/__init__.py +++ b/hr_timesheet_work_entry/__init__.py @@ -10,6 +10,6 @@ def ts_work_type_pre_init_hook(cr): from installing. """ cr.execute("UPDATE hr_work_entry_type " - "SET code = 'TS-PRE-INSTALL' " + "SET code = 'TS-PRE-INSTALL-14' " "WHERE code = 'TS';" ) From 886044044dd70807ae70fcad575e33c502caf10c Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 2 Sep 2021 09:21:16 -0700 Subject: [PATCH 4/9] [IMP] hr_timesheet_work_entry: add permission for base users to read work types --- hr_timesheet_work_entry/__manifest__.py | 3 ++- hr_timesheet_work_entry/security/ir.model.access.csv | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 hr_timesheet_work_entry/security/ir.model.access.csv diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index 9edc5be3..4c2ffc92 100755 --- a/hr_timesheet_work_entry/__manifest__.py +++ b/hr_timesheet_work_entry/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Timesheet Work Entry Type', 'description': 'Set work types on timesheet records.', - 'version': '14.0.1.0.0', + 'version': '14.0.1.0.1', 'website': 'https://hibou.io/', 'author': 'Hibou Corp. ', 'license': 'AGPL-3', @@ -11,6 +11,7 @@ 'hr_work_entry', ], 'data': [ + 'security/ir.model.access.csv', 'data/hr_timesheet_work_entry_data.xml', 'views/timesheet_views.xml', 'views/work_entry_views.xml', diff --git a/hr_timesheet_work_entry/security/ir.model.access.csv b/hr_timesheet_work_entry/security/ir.model.access.csv new file mode 100644 index 00000000..840437fa --- /dev/null +++ b/hr_timesheet_work_entry/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_hr_work_entry_type_employee,access_hr_work_entry_type_employee,model_hr_work_entry_type,base.group_user,1,0,0,0 From bf147b83018b36d4e6c3906a54ca094e042bdcbc Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 7 Oct 2021 09:10:12 -0700 Subject: [PATCH 5/9] [MIG] hr_timesheet_work_entry: for Odoo 15.0 --- hr_timesheet_work_entry/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index 4c2ffc92..60ba9dcb 100755 --- a/hr_timesheet_work_entry/__manifest__.py +++ b/hr_timesheet_work_entry/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Timesheet Work Entry Type', 'description': 'Set work types on timesheet records.', - 'version': '14.0.1.0.1', + 'version': '15.0.1.0.0', 'website': 'https://hibou.io/', 'author': 'Hibou Corp. ', 'license': 'AGPL-3', From f63656103a7fec45f1d758b5ecc4d5b75946161e Mon Sep 17 00:00:00 2001 From: Mishael De La Cruz Date: Tue, 2 Nov 2021 09:58:15 -0500 Subject: [PATCH 6/9] [I18N] multi: Initial Translations 15.0 --- hr_timesheet_work_entry/i18n/es.po | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 hr_timesheet_work_entry/i18n/es.po diff --git a/hr_timesheet_work_entry/i18n/es.po b/hr_timesheet_work_entry/i18n/es.po new file mode 100644 index 00000000..5db8ac4a --- /dev/null +++ b/hr_timesheet_work_entry/i18n/es.po @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_work_entry +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-10-12 01:31+0000\n" +"PO-Revision-Date: 2021-10-12 01: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_timesheet_work_entry +#: model:ir.model.fields,field_description:hr_timesheet_work_entry.field_hr_work_entry_type__allow_timesheet +msgid "Allow on Timesheet" +msgstr "Permitir en Ficha de Horario" + +#. module: hr_timesheet_work_entry +#: model:ir.model,name:hr_timesheet_work_entry.model_account_analytic_line +msgid "Analytic Line" +msgstr "Línea Analítica" + +#. module: hr_timesheet_work_entry +#: model:ir.model,name:hr_timesheet_work_entry.model_hr_work_entry_type +msgid "HR Work Entry Type" +msgstr "Tipo de entrada de trabajo de RRHH" + +#. module: hr_timesheet_work_entry +#: model:hr.work.entry.type,name:hr_timesheet_work_entry.work_input_timesheet +msgid "Timesheet" +msgstr "Ficha de Horario" + +#. module: hr_timesheet_work_entry +#: model_terms:ir.ui.view,arch_db:hr_timesheet_work_entry.hr_work_entry_type_view_form_inherit +msgid "Timesheets" +msgstr "Fichas de Horario" + +#. module: hr_timesheet_work_entry +#: model:ir.ui.menu,name:hr_timesheet_work_entry.hr_work_entry_type_menu +msgid "Work Entry Types" +msgstr "Tipos de Entradas de Trabajo" + +#. module: hr_timesheet_work_entry +#: model:ir.model.fields,field_description:hr_timesheet_work_entry.field_account_analytic_line__work_type_id +msgid "Work Type" +msgstr "Tipo de Trabajo" From 270b5e284bbb11ffe670ce741f5215c38a2b96b8 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 9 Jan 2022 14:22:53 -0800 Subject: [PATCH 7/9] [IMP] hr_timesheet_work_entry: work entry type in more views --- hr_timesheet_work_entry/__manifest__.py | 1 + .../views/timesheet_views.xml | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index 60ba9dcb..023f4c92 100755 --- a/hr_timesheet_work_entry/__manifest__.py +++ b/hr_timesheet_work_entry/__manifest__.py @@ -7,6 +7,7 @@ 'license': 'AGPL-3', 'category': 'Human Resources', 'depends': [ + 'project', 'hr_timesheet', 'hr_work_entry', ], diff --git a/hr_timesheet_work_entry/views/timesheet_views.xml b/hr_timesheet_work_entry/views/timesheet_views.xml index c6380521..9ac5d44f 100644 --- a/hr_timesheet_work_entry/views/timesheet_views.xml +++ b/hr_timesheet_work_entry/views/timesheet_views.xml @@ -27,4 +27,22 @@ + + project.task.form.inherit + project.task + + + + + + + + + + + From 6e53fc6b2f0ab605b594cbb658eb13495c29f0db Mon Sep 17 00:00:00 2001 From: Leo Pinedo Date: Mon, 24 Oct 2022 17:36:31 +0000 Subject: [PATCH 8/9] [MIG] hr_timesheet_work_entry: to 16 --- hr_timesheet_work_entry/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index 023f4c92..f5ef7b1b 100755 --- a/hr_timesheet_work_entry/__manifest__.py +++ b/hr_timesheet_work_entry/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Timesheet Work Entry Type', 'description': 'Set work types on timesheet records.', - 'version': '15.0.1.0.0', + 'version': '16.0.1.0.0', 'website': 'https://hibou.io/', 'author': 'Hibou Corp. ', 'license': 'AGPL-3', From b597b80bda651ae3062758d1c2c4b7b35b0453c1 Mon Sep 17 00:00:00 2001 From: Salomon Chambi Date: Tue, 31 Oct 2023 17:03:11 +0000 Subject: [PATCH 9/9] [MIG] hr_timesheet_work_entry: to 17.0 --- hr_timesheet_work_entry/__manifest__.py | 4 ++-- hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml | 2 +- hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index f5ef7b1b..fdc54d0f 100755 --- a/hr_timesheet_work_entry/__manifest__.py +++ b/hr_timesheet_work_entry/__manifest__.py @@ -1,9 +1,9 @@ { 'name': 'Timesheet Work Entry Type', 'description': 'Set work types on timesheet records.', - 'version': '16.0.1.0.0', + 'version': '17.0.1.0.0', 'website': 'https://hibou.io/', - 'author': 'Hibou Corp. ', + 'author': 'Hibou Corp.', 'license': 'AGPL-3', 'category': 'Human Resources', 'depends': [ diff --git a/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml index cdcd2609..624bbd34 100644 --- a/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml +++ b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_data.xml @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml index 996dee41..f7ed0c85 100644 --- a/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml +++ b/hr_timesheet_work_entry/data/hr_timesheet_work_entry_demo.xml @@ -7,4 +7,4 @@ - \ No newline at end of file +