添加功能

This commit is contained in:
李鹏宇
2026-05-27 10:47:00 +08:00
parent 0b67232201
commit 0ec47ea185
4 changed files with 26 additions and 12 deletions
+12 -6
View File
@@ -65,7 +65,7 @@ class SoongWorkflowRecord(models.Model):
department_id = fields.Many2one("hr.department", string="部门", required=True)
done_by = fields.Many2one(comodel_name="res.users", string="发起人")
active = fields.Boolean(string="归档", default=True)
is_manager = fields.Boolean(string="是否管理员", compute='_compute_is_manager')
is_manager = fields.Boolean(string="是否管理员", compute='_compute_is_manager', search='_search_is_manager')
soong_state = fields.Selection([('to_do', '待办'), ('done', '已办'),('to_active', '待归档'), ('active', '已归档')], string="流程状态", default="to_do")
member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department',
search='_search_part_of_department')
@@ -109,6 +109,17 @@ class SoongWorkflowRecord(models.Model):
store=False,
)
@api.depends('create_uid')
def _compute_is_manager(self):
self.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_sub_manager')
def _search_is_manager(self, operator, value):
is_manager_user = self.env.user.has_group('soong_workflow.group_soong_workflow_sub_manager')
if is_manager_user:
return []
else:
return [('member_of_department', '=', True)]
def correction(self):
for rec in self:
biz_record = self.env[rec.res_model].browse(rec.res_id)
@@ -738,11 +749,6 @@ class SoongWorkflowRecord(models.Model):
else:
related_record.self_users_ids = [(5,)]
@api.depends('create_uid')
def _compute_is_manager(self):
self.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_manager')
def update_users_ids(self):
record_ids = self.env["soong.workflow.record"].browse(
self._context.get('active_ids', self._context.get('active_id', []))
@@ -16,10 +16,22 @@
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
</record>
<record id="group_soong_workflow_sub_manager" model="res.groups">
<field name="name">下级管理员</field>
<field name="category_id" ref="module_category_soong_workflow"/>
<field name="implied_ids" eval="[
(4, ref('group_soong_workflow_user')),
(4, ref('group_soong_workflow_hr')),
]"/>
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
</record>
<record id="group_soong_workflow_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="module_category_soong_workflow"/>
<field name="implied_ids" eval="[(4, ref('group_soong_workflow_user')),(4, ref('group_soong_workflow_hr'))]"/>
<field name="implied_ids" eval="[
(4, ref('group_soong_workflow_sub_manager'))
]"/>
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
</record>
@@ -33,7 +45,6 @@
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<!-- Manager组的记录规则,允许查看所有数据 -->
<record id="rule_soong_workflow_manager" model="ir.rule">
<field name="name">Manager: 访问所有数据</field>
@@ -469,7 +469,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">soong.workflow.record</field>
<field name="view_mode">tree,kanban,search</field>
<field name="domain">[('reclaim_state', '=', False), ('member_of_department', '=', True), ('is_company', '=', True),('approve_state','!=','start'),('approvals_group_id.name', 'not in', ['考勤', '人事'])]</field>
<field name="domain">[('reclaim_state', '=', False), ('is_company', '=', True),('approve_state','!=','start'),('approvals_group_id.name', 'not in', ['考勤', '人事'])]</field>
<field name="context">{'search_default_my_department_shifts': True, 'default_order': 'display_end_time desc'}</field>
<field name="search_view_id" ref="soong_workflow_record_search1"/>
<field name="view_id" ref="soong_workflow_record_department_tree"/>
@@ -31,9 +31,6 @@
class="btn-primary" invisible="not work_end"/>
</header>
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success" invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning" invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特急" bg_color="text-bg-danger" invisible="urgency_level != 'extra_urgent'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>