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