diff --git a/soong_workflow/models/soong_workflow_entrust.py b/soong_workflow/models/soong_workflow_entrust.py index b5a54b41a..7e014a265 100644 --- a/soong_workflow/models/soong_workflow_entrust.py +++ b/soong_workflow/models/soong_workflow_entrust.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- import logging import datetime + +from Tools.scripts.dutree import store + from odoo import models, fields, api, _, modules from odoo.exceptions import ValidationError, UserError @@ -117,15 +120,14 @@ class SoongWorkflowEntrust(models.Model): @api.depends('start_date', 'end_date', 'is_expiration_date') def compute_is_enable(self): + today = fields.Date.today() for rec in self: if rec.is_expiration_date: rec.is_enable = True + elif rec.start_date and rec.end_date: + rec.is_enable = rec.start_date <= today < rec.end_date else: - if rec.start_date and rec.end_date: - if rec.start_date <= fields.Date.today() < rec.end_date: - rec.is_enable = True - else: - rec.is_enable = False + rec.is_enable = False class EntrustAll(models.Model): diff --git a/yuthon_issue/__manifest__.py b/yuthon_issue/__manifest__.py index ef834e826..5af414025 100644 --- a/yuthon_issue/__manifest__.py +++ b/yuthon_issue/__manifest__.py @@ -27,6 +27,7 @@ 'views/issue_meeting_minutes_views.xml', 'views/issue_party_approval_views.xml', 'views/issue_library_type_views.xml', + 'views/role_group_views.xml', 'wizard/issue_line_add_wizard.xml', 'wizard/soong_workflow_comment_wizard_inherit.xml', 'report/meeting_minutes_report.xml', diff --git a/yuthon_issue/models/__init__.py b/yuthon_issue/models/__init__.py index cd0733412..459ad2169 100644 --- a/yuthon_issue/models/__init__.py +++ b/yuthon_issue/models/__init__.py @@ -12,4 +12,5 @@ from . import issue_party_approval from . import issue_class_approval from . import issue_boss_approval from . import soong_workflow_mixin_inherit +from . import role_group_inherit diff --git a/yuthon_issue/models/role_group_inherit.py b/yuthon_issue/models/role_group_inherit.py new file mode 100644 index 000000000..802a81297 --- /dev/null +++ b/yuthon_issue/models/role_group_inherit.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from odoo import api, fields, models + + +class SoongUserRoleGroupInherit(models.Model): + _inherit = 'soong.user.role.group' + + personnel_ids = fields.Many2many( + 'hr.employee', + 'yuthon_issue_role_group_personnel_rel', + 'group_id', + 'employee_id', + string='人员', + compute='_compute_personnel', + ) + + @api.depends('user_role_ids') + def _compute_personnel(self): + # 与议题模块「列席群组」取人逻辑保持一致: + # 群组包含角色(user_role_ids)中,任一角色作为员工主角色(user_role_id) + # 或辅助角色(user_role_ids)时,该员工即列为列席人员 + for group in self: + if group.user_role_ids: + role_ids = group.user_role_ids.ids + employees = self.env['hr.employee'].sudo().search([ + '|', + ('user_role_id', 'in', role_ids), + ('user_role_ids', 'in', role_ids), + ]) + group.personnel_ids = employees + else: + group.personnel_ids = self.env['hr.employee'] diff --git a/yuthon_issue/views/role_group_views.xml b/yuthon_issue/views/role_group_views.xml new file mode 100644 index 000000000..b48aad1e1 --- /dev/null +++ b/yuthon_issue/views/role_group_views.xml @@ -0,0 +1,31 @@ + + + + + soong.user.role.group.tree.inherit.personnel + soong.user.role.group + + + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + + +