diff --git a/cor_custom/models/hr_employee.py b/cor_custom/models/hr_employee.py index e07c35d..4f42fab 100755 --- a/cor_custom/models/hr_employee.py +++ b/cor_custom/models/hr_employee.py @@ -6,4 +6,9 @@ from odoo import api, fields, models, _ class HrEmployee(models.Model): _inherit = 'hr.employee' - budgeted_hour_week = fields.Integer("Budgeted Hours") \ No newline at end of file + budgeted_hour_week = fields.Integer("Budgeted Hours") + +class EmployeePublic(models.Model): + _inherit = 'hr.employee.public' + + budgeted_hour_week = fields.Integer("Budgeted Hours") diff --git a/planning/views/planning_views.xml b/planning/views/planning_views.xml index bdeb3bd..9cef9fe 100755 --- a/planning/views/planning_views.xml +++ b/planning/views/planning_views.xml @@ -43,7 +43,7 @@ - + @@ -120,6 +120,8 @@ + + diff --git a/project_forecast/__manifest__.py b/project_forecast/__manifest__.py index 919a273..c0c16d6 100755 --- a/project_forecast/__manifest__.py +++ b/project_forecast/__manifest__.py @@ -8,7 +8,7 @@ """, 'category': 'Operations/Project', 'version': '1.0', - 'depends': ['project', 'planning'], + 'depends': ['project', 'planning', 'cor_custom'], 'data': [ 'views/planning_views.xml', 'views/project_forecast_views.xml', diff --git a/project_forecast/models/project_forecast.py b/project_forecast/models/project_forecast.py index 661de26..f86a465 100755 --- a/project_forecast/models/project_forecast.py +++ b/project_forecast/models/project_forecast.py @@ -29,6 +29,30 @@ class PlanningShift(models.Model): else: self.task_id.project_id = self.project_id + @api.onchange('employee_id') + def _onchange_employee_id(self): + domain = [] + if self.employee_id and not self.employee_id.user_id: + self.project_id = False + domain = [('id', 'in', [])] + if self.employee_id: + self.project_id = False + domain = [('id', 'in', [])] + if self.employee_id and self.employee_id.user_id: + manager_id = self.env['project.project'].search( + [('user_id', '=', self.employee_id.user_id.id), ('allow_forecast', '=', True)]).ids + emp_project_ids = self.env['project.project'].search( + [('privacy_visibility', 'in', ('employees', 'portal')), ('allow_forecast', '=', True)]).ids + project_ids = self.env['project.project'].search( + [('privacy_visibility', '=', 'followers'), ('allow_forecast', '=', True), + ('allowed_internal_user_ids', 'in', self.employee_id.user_id.id)]).ids + emp_all_project_ids = manager_id + emp_project_ids + project_ids + domain = [('id', 'in', list(set(emp_all_project_ids)))] + result = { + 'domain': {'project_id': domain}, + } + return result + @api.onchange('project_id') def _onchange_project_id(self): domain = [] if not self.project_id else [('project_id', '=', self.project_id.id)] diff --git a/project_forecast/views/project_forecast_views.xml b/project_forecast/views/project_forecast_views.xml index 506c21f..22c7ba5 100755 --- a/project_forecast/views/project_forecast_views.xml +++ b/project_forecast/views/project_forecast_views.xml @@ -119,7 +119,7 @@ - + action="project_forecast_action_by_project"/> -->