From d74b0a79d47efbb63ed5a7bca63ed793518a00e7 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 6 Oct 2020 11:53:45 -0700 Subject: [PATCH 01/10] [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 ad1c9ff616baa292438fbdfb70e9582832a7feb0 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Fri, 27 Nov 2020 14:46:28 -0800 Subject: [PATCH 02/10] [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 b8bd84faf040370ccbcda66c3d32013bb6af2410 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 21 Mar 2021 13:35:09 -0700 Subject: [PATCH 03/10] [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 1b52a1ed0bd4c9875be1e6703cd2eb4ec9c07a8f Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 2 Sep 2021 09:21:16 -0700 Subject: [PATCH 04/10] [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 4dfeb41c263188c2ca8c8cdd1f36a713bf788d1b Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 7 Oct 2021 09:10:12 -0700 Subject: [PATCH 05/10] [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 a6bcce1620ec5d0977e157ebe28abb87bad1eeee Mon Sep 17 00:00:00 2001 From: Mishael De La Cruz Date: Tue, 2 Nov 2021 09:58:15 -0500 Subject: [PATCH 06/10] [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 2beb6552b9b58e19dbef5fc9e2e744cb4b235390 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 9 Jan 2022 14:22:53 -0800 Subject: [PATCH 07/10] [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 b45ce15a4272c69c6c185675b4f6f364769221ef Mon Sep 17 00:00:00 2001 From: Leo Pinedo Date: Mon, 24 Oct 2022 17:36:31 +0000 Subject: [PATCH 08/10] [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 6d239dd4da196d4929428bf28a4836c2cea50d75 Mon Sep 17 00:00:00 2001 From: Salomon Chambi Date: Tue, 31 Oct 2023 17:03:11 +0000 Subject: [PATCH 09/10] [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 + From 659dc27fa0e54a3e0564e9aa727996819fea99c7 Mon Sep 17 00:00:00 2001 From: Mayank Patel Date: Thu, 24 Oct 2024 10:43:22 +0000 Subject: [PATCH 10/10] [MIG] hr_timesheet_work_entry: Migrated to 18.0 H14631 --- hr_timesheet_work_entry/__init__.py | 4 ++-- hr_timesheet_work_entry/__manifest__.py | 2 +- hr_timesheet_work_entry/views/timesheet_views.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hr_timesheet_work_entry/__init__.py b/hr_timesheet_work_entry/__init__.py index e58c8b0b..b54e0630 100644 --- a/hr_timesheet_work_entry/__init__.py +++ b/hr_timesheet_work_entry/__init__.py @@ -1,7 +1,7 @@ from . import models -def ts_work_type_pre_init_hook(cr): +def ts_work_type_pre_init_hook(env): """ This module installs a Work Entry Type with code "TS" If you have undergone a migration (either for this module @@ -9,7 +9,7 @@ def ts_work_type_pre_init_hook(cr): then the uniqueness constraint will prevent this module from installing. """ - cr.execute("UPDATE hr_work_entry_type " + env.cr.execute("UPDATE hr_work_entry_type " "SET code = 'TS-PRE-INSTALL-14' " "WHERE code = 'TS';" ) diff --git a/hr_timesheet_work_entry/__manifest__.py b/hr_timesheet_work_entry/__manifest__.py index fdc54d0f..aa4d2007 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': '17.0.1.0.0', + 'version': '18.0.1.0.0', 'website': 'https://hibou.io/', 'author': 'Hibou Corp.', 'license': 'AGPL-3', diff --git a/hr_timesheet_work_entry/views/timesheet_views.xml b/hr_timesheet_work_entry/views/timesheet_views.xml index 9ac5d44f..30ec431e 100644 --- a/hr_timesheet_work_entry/views/timesheet_views.xml +++ b/hr_timesheet_work_entry/views/timesheet_views.xml @@ -6,7 +6,7 @@ account.analytic.line - + @@ -32,7 +32,7 @@ project.task - +