From 585933be34eb6888bf234b39c122da74c88b8b90 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 6 Oct 2020 11:53:45 -0700 Subject: [PATCH 1/8] [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 5be99ce747d7b8bde2cc09cb1c853d1e35444f5d Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Fri, 27 Nov 2020 14:46:28 -0800 Subject: [PATCH 2/8] [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 fd192f956e5aae030bbeaa436b7e713b3ad38af8 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 21 Mar 2021 13:35:09 -0700 Subject: [PATCH 3/8] [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 fe81f66020719cc9077138b5283120277cc43b7e Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 2 Sep 2021 09:21:16 -0700 Subject: [PATCH 4/8] [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 e27a1793a2a32a09a97f287e81f9151f03d2e09a Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 7 Oct 2021 09:10:12 -0700 Subject: [PATCH 5/8] [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 0b08bbfacfd1c5ce1d963169bf2933505d071822 Mon Sep 17 00:00:00 2001 From: Mishael De La Cruz Date: Tue, 2 Nov 2021 09:58:15 -0500 Subject: [PATCH 6/8] [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 cf96fb20255b658448dc15c3619c5a9a2ab0c63b Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sun, 9 Jan 2022 14:22:53 -0800 Subject: [PATCH 7/8] [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 bc873813d5964193eabf4443de6cc3e1c05b334e Mon Sep 17 00:00:00 2001 From: Leo Pinedo Date: Mon, 24 Oct 2022 17:36:31 +0000 Subject: [PATCH 8/8] [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',