From 2fdf2d06d48cb5cf3799f08595a71bca7c999853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 2 Sep 2026 17:16:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/soong_workflow_entrust.py | 12 ++++--- yuthon_issue/__manifest__.py | 1 + yuthon_issue/models/__init__.py | 1 + yuthon_issue/models/role_group_inherit.py | 32 +++++++++++++++++++ yuthon_issue/views/role_group_views.xml | 31 ++++++++++++++++++ 5 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 yuthon_issue/models/role_group_inherit.py create mode 100644 yuthon_issue/views/role_group_views.xml 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 + + + + + + + +