From fc8631f890e1dc7ced99f27303fa88a73283f8c0 Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 4 Nov 2024 14:44:25 +0100 Subject: [PATCH 01/13] [FIX] maintenance_usage: replace old field tracking argument --- maintenance_usage/models/maintenance.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maintenance_usage/models/maintenance.py b/maintenance_usage/models/maintenance.py index 3622d5a8..92c17160 100644 --- a/maintenance_usage/models/maintenance.py +++ b/maintenance_usage/models/maintenance.py @@ -11,8 +11,8 @@ class MaintenanceEquipmentCategory(models.Model): class MaintenanceEquipment(models.Model): _inherit = 'maintenance.equipment' - employee_id = fields.Many2one(track_visibility=False) - department_id = fields.Many2one(track_visibility=False) + employee_id = fields.Many2one(tracking=False) + department_id = fields.Many2one(tracking=False) usage_qty = fields.Float(string='Usage', default=0.0) usage_uom_id = fields.Many2one('uom.uom', related='category_id.usage_uom_id') usage_log_ids = fields.One2many('maintenance.usage.log', 'equipment_id', string='Usage') From 5c6874edc0fa5fb241c0d3be0ecd7810d1d59724 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 24 Apr 2018 09:55:23 -0700 Subject: [PATCH 02/13] Initial commit `maintenance_timesheet` for 11.0 --- maintenance_timesheet/__init__.py | 1 + maintenance_timesheet/__manifest__.py | 24 +++++++ maintenance_timesheet/models/__init__.py | 1 + maintenance_timesheet/models/maintenance.py | 55 +++++++++++++++ .../views/maintenance_views.xml | 67 +++++++++++++++++++ 5 files changed, 148 insertions(+) create mode 100644 maintenance_timesheet/__init__.py create mode 100644 maintenance_timesheet/__manifest__.py create mode 100644 maintenance_timesheet/models/__init__.py create mode 100644 maintenance_timesheet/models/maintenance.py create mode 100644 maintenance_timesheet/views/maintenance_views.xml diff --git a/maintenance_timesheet/__init__.py b/maintenance_timesheet/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/maintenance_timesheet/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/maintenance_timesheet/__manifest__.py b/maintenance_timesheet/__manifest__.py new file mode 100644 index 00000000..bca3e0b5 --- /dev/null +++ b/maintenance_timesheet/__manifest__.py @@ -0,0 +1,24 @@ +{ + 'name': 'Equipment Timesheets', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'category': 'Human Resources', + 'summary': 'Record time on maintenance requests.', + 'description': """ +Equipment Timesheets +==================== + +Adds Timesheets to Maintenance Requests to record time and labor costs. +""", + 'website': 'https://hibou.io/', + 'depends': [ + 'maintenance_notebook', + 'hr_department_project', + 'hr_timesheet', + ], + 'data': [ + 'views/maintenance_views.xml', + ], + 'installable': True, + 'auto_install': False, +} diff --git a/maintenance_timesheet/models/__init__.py b/maintenance_timesheet/models/__init__.py new file mode 100644 index 00000000..12bf298f --- /dev/null +++ b/maintenance_timesheet/models/__init__.py @@ -0,0 +1 @@ +from . import maintenance diff --git a/maintenance_timesheet/models/maintenance.py b/maintenance_timesheet/models/maintenance.py new file mode 100644 index 00000000..202338af --- /dev/null +++ b/maintenance_timesheet/models/maintenance.py @@ -0,0 +1,55 @@ +from odoo import api, fields, models + + +class AnalyticLine(models.Model): + _inherit = 'account.analytic.line' + + maintenance_request_id = fields.Many2one('maintenance.request') + + +class MaintenanceEquipment(models.Model): + _inherit = 'maintenance.equipment' + + def action_open_maintenance_requests(self): + self.ensure_one() + action = self.env.ref('maintenance.hr_equipment_request_action_from_equipment').read()[0] + action['domain'] = [('equipment_id', '=', self.id)] + action['context'] = { + 'default_equipment_id': self.id, + 'default_employee_id': self.employee_id.id, + 'default_department_id': self.department_id.id, + } + return action + + +class MaintenanceRequest(models.Model): + _inherit = 'maintenance.request' + + project_id = fields.Many2one('project.project', string='Billing Project') + timesheet_ids = fields.One2many('account.analytic.line', 'maintenance_request_id', 'Timesheets') + effective_hours = fields.Float(compute='_hours_get', store=True, string='Hours Spent', + help="Computed using the sum of the maintenance work done.") + remaining_hours = fields.Float(compute='_hours_get', store=True, string='Remaining Hours', + help="Total remaining time.") + + @api.model + def create(self, values): + if not values.get('project_id') and values.get('department_id'): + department = self.env['hr.department'].browse(values.get('department_id')) + if department and department.project_ids: + values.update({'project_id': department.project_ids.ids[0]}) + return super(MaintenanceRequest, self).create(values) + + @api.depends('duration', 'timesheet_ids.unit_amount') + def _hours_get(self): + for request in self: + effective_hours = sum(request.sudo().timesheet_ids.mapped('unit_amount')) + request.effective_hours = effective_hours + request.remaining_hours = (request.duration or 0.0) - effective_hours + + @api.onchange('department_id') + def _onchange_department_id_project(self): + for request in self: + if request.department_id and request.department_id.project_ids: + request.project_id = request.department_id.project_ids[0] + diff --git a/maintenance_timesheet/views/maintenance_views.xml b/maintenance_timesheet/views/maintenance_views.xml new file mode 100644 index 00000000..f304b368 --- /dev/null +++ b/maintenance_timesheet/views/maintenance_views.xml @@ -0,0 +1,67 @@ + + + + equipment.form.inherited + maintenance.equipment + + + + + + + + + + maintenance.request.view.form.inherit.hr.inherited + maintenance.request + + + + + + + + + + + equipment.request.form.notebook.inherited + maintenance.request + + + + + + + + + + + + + + + + + + + + + + + + + + + equipment.request.tree.inherited + maintenance.request + + + + + + + + \ No newline at end of file From f96f7c1f48a05a3cb957252fb59e27c211ed09b1 Mon Sep 17 00:00:00 2001 From: Kristen Marie Kulha Date: Mon, 11 Jun 2018 16:37:31 -0700 Subject: [PATCH 03/13] Add README to maintenance_timesheet. --- maintenance_timesheet/README.rst | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 maintenance_timesheet/README.rst diff --git a/maintenance_timesheet/README.rst b/maintenance_timesheet/README.rst new file mode 100644 index 00000000..81bbdb7f --- /dev/null +++ b/maintenance_timesheet/README.rst @@ -0,0 +1,34 @@ +***************************** +Hibou - Maintenance Timesheet +***************************** + +Record time on maintenance requests. + +For more information and add-ons, visit `Hibou.io `_. + + +============= +Main Features +============= + +* Adds Timesheets to Maintenance Requests to record time and labor costs. +* New 'Timesheets' notebook tab on Maintenance Request form. + +.. image:: https://user-images.githubusercontent.com/15882954/41261982-394a10b8-6d93-11e8-9602-c19a3e20065d.png + :alt: 'Equipment Detail' + :width: 988 + :align: left + +===== +Notes +===== + +* In order to add time sheets, you must first select a Billing Project from the dropdown menu. + +======= +License +======= + +Please see `LICENSE `_. + +Copyright Hibou Corp. 2018 From 2a4581475ee7b6f604c59bed4fe2d25b3e8661d2 Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Thu, 29 Aug 2019 13:46:58 -0400 Subject: [PATCH 04/13] MIG `maintenance_timesheet` For Odoo 12.0 --- maintenance_timesheet/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintenance_timesheet/__manifest__.py b/maintenance_timesheet/__manifest__.py index bca3e0b5..018f2ced 100644 --- a/maintenance_timesheet/__manifest__.py +++ b/maintenance_timesheet/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Equipment Timesheets', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Record time on maintenance requests.', From 4ded1b42edddb52939212422fe7e08c45604fa12 Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Tue, 3 Sep 2019 14:22:07 -0400 Subject: [PATCH 05/13] MIG `maintenance_timesheet` For Odoo 13.0 --- maintenance_timesheet/__manifest__.py | 2 +- maintenance_timesheet/models/maintenance.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/maintenance_timesheet/__manifest__.py b/maintenance_timesheet/__manifest__.py index 018f2ced..619e9ec9 100644 --- a/maintenance_timesheet/__manifest__.py +++ b/maintenance_timesheet/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Equipment Timesheets', - 'version': '12.0.1.0.0', + 'version': '13.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Record time on maintenance requests.', diff --git a/maintenance_timesheet/models/maintenance.py b/maintenance_timesheet/models/maintenance.py index 202338af..f8623de4 100644 --- a/maintenance_timesheet/models/maintenance.py +++ b/maintenance_timesheet/models/maintenance.py @@ -52,4 +52,3 @@ class MaintenanceRequest(models.Model): for request in self: if request.department_id and request.department_id.project_ids: request.project_id = request.department_id.project_ids[0] - From 6eb03dec97b5043343f89427704432d200514840 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Fri, 6 Dec 2019 16:57:13 -0800 Subject: [PATCH 06/13] FIX `maintenance_timesheet` unable to upgrade on latest Odoo version without `company_id` field in the timesheet view --- maintenance_timesheet/views/maintenance_views.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/maintenance_timesheet/views/maintenance_views.xml b/maintenance_timesheet/views/maintenance_views.xml index f304b368..59c3e090 100644 --- a/maintenance_timesheet/views/maintenance_views.xml +++ b/maintenance_timesheet/views/maintenance_views.xml @@ -40,6 +40,7 @@ + From 2d96f91cfa55f8acd0e04cfef29ca13face348cd Mon Sep 17 00:00:00 2001 From: Leo Pinedo Date: Tue, 25 Oct 2022 22:59:17 +0000 Subject: [PATCH 07/13] [MIG] maintenance_timesheet: to 16, error missing dependency hr_department_project --- maintenance_timesheet/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintenance_timesheet/__manifest__.py b/maintenance_timesheet/__manifest__.py index 619e9ec9..e6e9f618 100644 --- a/maintenance_timesheet/__manifest__.py +++ b/maintenance_timesheet/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Equipment Timesheets', - 'version': '13.0.1.0.0', + 'version': '16.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Record time on maintenance requests.', From 52693722429eb2425e952c98b3e91be16d02ed17 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 24 Apr 2018 09:49:18 -0700 Subject: [PATCH 08/13] Initial commit `hr_department_project` for 11.0 --- hr_department_project/__init__.py | 2 ++ hr_department_project/__manifest__.py | 24 +++++++++++++++++++ hr_department_project/models/__init__.py | 3 +++ hr_department_project/models/hr.py | 22 +++++++++++++++++ hr_department_project/models/project.py | 7 ++++++ hr_department_project/views/hr_views.xml | 15 ++++++++++++ hr_department_project/views/project_views.xml | 24 +++++++++++++++++++ 7 files changed, 97 insertions(+) create mode 100644 hr_department_project/__init__.py create mode 100644 hr_department_project/__manifest__.py create mode 100644 hr_department_project/models/__init__.py create mode 100644 hr_department_project/models/hr.py create mode 100644 hr_department_project/models/project.py create mode 100644 hr_department_project/views/hr_views.xml create mode 100644 hr_department_project/views/project_views.xml diff --git a/hr_department_project/__init__.py b/hr_department_project/__init__.py new file mode 100644 index 00000000..a0fdc10f --- /dev/null +++ b/hr_department_project/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import models diff --git a/hr_department_project/__manifest__.py b/hr_department_project/__manifest__.py new file mode 100644 index 00000000..9169d5d7 --- /dev/null +++ b/hr_department_project/__manifest__.py @@ -0,0 +1,24 @@ +{ + 'name': 'HR Department Project', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'category': 'Human Resources', + 'summary': 'Provide default project per Department', + 'description': """ +HR Department Project +===================== + +Define a 'default project' for every department. This is a bridge module to allow other modules to use this behavior. +""", + 'website': 'https://hibou.io/', + 'depends': [ + 'project', + 'hr', + ], + 'data': [ + 'views/hr_views.xml', + 'views/project_views.xml', + ], + 'installable': True, + 'auto_install': False, +} diff --git a/hr_department_project/models/__init__.py b/hr_department_project/models/__init__.py new file mode 100644 index 00000000..4723a666 --- /dev/null +++ b/hr_department_project/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import project +from . import hr diff --git a/hr_department_project/models/hr.py b/hr_department_project/models/hr.py new file mode 100644 index 00000000..2d0fb2f9 --- /dev/null +++ b/hr_department_project/models/hr.py @@ -0,0 +1,22 @@ +from odoo import api, fields, models, _ + + +class Department(models.Model): + _inherit = 'hr.department' + + project_ids = fields.One2many('project.project', 'department_id', string='Projects') + project_count = fields.Integer(compute='_compute_project_count', string='Project Count') + + def _compute_project_count(self): + for department in self: + department.project_count = len(department.with_context(active_test=False).project_ids) + + def project_tree_view(self): + self.ensure_one() + action = self.env.ref('project.open_view_project_all').read()[0] + action['domain'] = [('department_id', '=', self.id)] + action['context'] = { + 'default_department_id': self.id, + 'default_user_id': self.manager_id.id if self.manager_id else 0, + } + return action diff --git a/hr_department_project/models/project.py b/hr_department_project/models/project.py new file mode 100644 index 00000000..e6bd32f1 --- /dev/null +++ b/hr_department_project/models/project.py @@ -0,0 +1,7 @@ +from odoo import api, fields, models, _ + + +class Project(models.Model): + _inherit = 'project.project' + + department_id = fields.Many2one('hr.department', string='Department') diff --git a/hr_department_project/views/hr_views.xml b/hr_department_project/views/hr_views.xml new file mode 100644 index 00000000..609e23aa --- /dev/null +++ b/hr_department_project/views/hr_views.xml @@ -0,0 +1,15 @@ + + + + hr.department.form.inherited + hr.department + + + + + + + + \ No newline at end of file diff --git a/hr_department_project/views/project_views.xml b/hr_department_project/views/project_views.xml new file mode 100644 index 00000000..7c7af6da --- /dev/null +++ b/hr_department_project/views/project_views.xml @@ -0,0 +1,24 @@ + + + + project.project.form.inherited + project.project + + + + + + + + + + project.project.select.inherited + project.project + + + + + + + + \ No newline at end of file From dc119d94179347411ba91b901df682ecda34d1ae Mon Sep 17 00:00:00 2001 From: Kristen Marie Kulha Date: Fri, 8 Jun 2018 15:41:59 -0700 Subject: [PATCH 09/13] Add README. --- hr_department_project/README.rst | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 hr_department_project/README.rst diff --git a/hr_department_project/README.rst b/hr_department_project/README.rst new file mode 100644 index 00000000..981bdfe1 --- /dev/null +++ b/hr_department_project/README.rst @@ -0,0 +1,36 @@ +***************************** +Hibou - HR Department Project +***************************** + +Define a default project for every department. + +For more information and add-ons, visit `Hibou.io `_. + + +============= +Main Features +============= + +* Adds new smart button to HR Department form view for projects which displays the number of projects for that department. +* New project tree view for department-specific projects. +* Adds new Department field to projects. +* Adds new filter to group projects by Department. + +.. image:: https://user-images.githubusercontent.com/15882954/41183026-42afc7b4-6b2d-11e8-9531-f3e56b92b332.png + :alt: 'Project Create' + :width: 988 + :align: left + +.. image:: https://user-images.githubusercontent.com/15882954/41183324-fa790b84-6b2e-11e8-956b-3724a4b49e56.png + :alt: 'Department Detail' + :width: 988 + :align: left + + +======= +License +======= + +Please see `LICENSE `_. + +Copyright Hibou Corp. 2018 From 58e4de8a370327d78ceb990c3707087e29ca9a6b Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Thu, 29 Aug 2019 10:44:45 -0400 Subject: [PATCH 10/13] MIG `hr_department_project` For Odoo 12.0 --- hr_department_project/__manifest__.py | 2 +- hr_department_project/models/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hr_department_project/__manifest__.py b/hr_department_project/__manifest__.py index 9169d5d7..cc15435a 100644 --- a/hr_department_project/__manifest__.py +++ b/hr_department_project/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'HR Department Project', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Provide default project per Department', diff --git a/hr_department_project/models/__init__.py b/hr_department_project/models/__init__.py index 4723a666..feb08ba8 100644 --- a/hr_department_project/models/__init__.py +++ b/hr_department_project/models/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import project from . import hr +from . import project From 4c42c946f40be290bb335f5daa02220cbbbff67c Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Fri, 30 Aug 2019 10:19:59 -0400 Subject: [PATCH 11/13] MIG `hr_department_project` For Odoo 13.0 --- hr_department_project/__manifest__.py | 2 +- hr_department_project/views/hr_views.xml | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/hr_department_project/__manifest__.py b/hr_department_project/__manifest__.py index cc15435a..416e9170 100644 --- a/hr_department_project/__manifest__.py +++ b/hr_department_project/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'HR Department Project', - 'version': '12.0.1.0.0', + 'version': '13.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Provide default project per Department', diff --git a/hr_department_project/views/hr_views.xml b/hr_department_project/views/hr_views.xml index 609e23aa..9de2b3fb 100644 --- a/hr_department_project/views/hr_views.xml +++ b/hr_department_project/views/hr_views.xml @@ -5,10 +5,12 @@ hr.department - - + +
+ +
From 4ce1885b5afbf3ab5a9840b9437002a7e67664e4 Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 4 Nov 2024 17:14:09 +0100 Subject: [PATCH 12/13] [MIG] hr_department_project: migrate to 17.0 --- hr_department_project/__manifest__.py | 2 +- hr_department_project/views/hr_views.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/hr_department_project/__manifest__.py b/hr_department_project/__manifest__.py index 416e9170..236f81dc 100644 --- a/hr_department_project/__manifest__.py +++ b/hr_department_project/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'HR Department Project', - 'version': '13.0.1.0.0', + 'version': '17.0.1.0.0', 'author': 'Hibou Corp. ', 'category': 'Human Resources', 'summary': 'Provide default project per Department', diff --git a/hr_department_project/views/hr_views.xml b/hr_department_project/views/hr_views.xml index 9de2b3fb..478bdb82 100644 --- a/hr_department_project/views/hr_views.xml +++ b/hr_department_project/views/hr_views.xml @@ -5,7 +5,8 @@ hr.department - + +