From 4c28667efd3a6d7560be9fe656a0f48328f6c1ea Mon Sep 17 00:00:00 2001 From: fw-bot Date: Fri, 15 Nov 2019 17:12:38 +0000 Subject: [PATCH] [IMP] hr_holidays: prevent grouping leaves by name closes odoo/odoo#40426 Taskid: 2088559 X-original-commit: 5653520252f321d1fa185bffd897952830b509c4 Signed-off-by: Yannick Tivisse (yti) --- addons/hr_holidays/models/hr_leave.py | 6 ++++++ addons/hr_holidays/report/hr_leave_report.py | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 16e3e551cc5..f8bfe245171 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -703,6 +703,12 @@ class HolidaysRequest(models.Model): def _get_mail_redirect_suggested_company(self): return self.holiday_status_id.company_id + @api.model + def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True): + if not self.user_has_groups('hr_holidays.group_hr_holidays_user') and 'private_name' in groupby: + raise UserError(_('Such grouping is not allowed.')) + return super(HolidaysRequest, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy) + #################################################### # Business methods #################################################### diff --git a/addons/hr_holidays/report/hr_leave_report.py b/addons/hr_holidays/report/hr_leave_report.py index ab30fddf1eb..c6bf97722fd 100644 --- a/addons/hr_holidays/report/hr_leave_report.py +++ b/addons/hr_holidays/report/hr_leave_report.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import api, fields, models, tools, _ +from odoo import api, fields, models, tools, exceptions, _ from odoo.osv import expression @@ -98,7 +98,6 @@ class LeaveReport(models.Model): # skip SpecialValue (e.g. for missing record or access right) pass - @api.model def action_time_off_analysis(self): domain = [('holiday_type', '=', 'employee')] @@ -121,3 +120,9 @@ class LeaveReport(models.Model): 'search_default_year': True } } + + @api.model + def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True): + if not self.user_has_groups('hr_holidays.group_hr_holidays_user') and 'private_name' in groupby: + raise exceptions.UserError(_('Such grouping is not allowed.')) + return super(LeaveReport, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy)