diff --git a/addons/hr_contract/__manifest__.py b/addons/hr_contract/__manifest__.py index 267cb597ac5..89e714418e4 100644 --- a/addons/hr_contract/__manifest__.py +++ b/addons/hr_contract/__manifest__.py @@ -26,6 +26,7 @@ You can assign several contracts per employee. 'report/hr_contract_history_report_views.xml', 'views/hr_contract_views.xml', 'views/assets.xml', + 'views/resource_calendar_views.xml', 'wizard/hr_departure_wizard_views.xml', ], 'demo': ['data/hr_contract_demo.xml'], diff --git a/addons/hr_contract/models/resource.py b/addons/hr_contract/models/resource.py index 865e8733318..ad4079e2f65 100644 --- a/addons/hr_contract/models/resource.py +++ b/addons/hr_contract/models/resource.py @@ -1,14 +1,17 @@ # -*- coding:utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. + from datetime import datetime -from odoo import models, fields, api +from odoo import fields, models from odoo.osv.expression import AND class ResourceCalendar(models.Model): _inherit = 'resource.calendar' + contracts_count = fields.Integer("# Contracts using it", compute='_compute_contracts_count', groups="hr_contract.group_hr_contract_manager") + def transfer_leaves_to(self, other_calendar, resources=None, from_date=None): """ Transfer some resource.calendar.leaves from 'self' to another calendar 'other_calendar'. @@ -26,3 +29,17 @@ class ResourceCalendar(models.Model): 'calendar_id': other_calendar.id, }) + def _compute_contracts_count(self): + count_data = self.env['hr.contract'].read_group( + [('resource_calendar_id', 'in', self.ids)], + ['resource_calendar_id'], + ['resource_calendar_id']) + mapped_counts = {cd['resource_calendar_id'][0]: cd['resource_calendar_id_count'] for cd in count_data} + for calendar in self: + calendar.contracts_count = mapped_counts.get(calendar.id, 0) + + def action_open_contracts(self): + self.ensure_one() + action = self.env["ir.actions.actions"]._for_xml_id("hr_contract.action_hr_contract") + action.update({'domain': [('resource_calendar_id', '=', self.id)]}) + return action diff --git a/addons/hr_contract/report/hr_contract_history_report_views.xml b/addons/hr_contract/report/hr_contract_history_report_views.xml index bda3d1e888f..2c1d65a3670 100644 --- a/addons/hr_contract/report/hr_contract_history_report_views.xml +++ b/addons/hr_contract/report/hr_contract_history_report_views.xml @@ -40,6 +40,7 @@ + + + +