From ff87c3a4ac5d3a7924b009263ae6c5bbd3807e30 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 24 Apr 2018 09:49:18 -0700 Subject: [PATCH] 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