删除约束,按钮提醒
This commit is contained in:
@@ -908,20 +908,46 @@ class IssueLibrary(models.Model):
|
||||
])
|
||||
|
||||
def unlink(self):
|
||||
"""删除议题:仅待推送/待申报/已取消状态可删,管理员可绕过"""
|
||||
# 判断当前用户是否为系统管理员
|
||||
is_admin = self.env.user.has_group('base.group_system')
|
||||
# 可删除的议题状态:待推送、待申报、已取消
|
||||
deletable_states = ('to_do', 'draft', 'cancel')
|
||||
# 获取议题状态的中文标签映射
|
||||
state_label = dict(self._fields['issue_state'].selection)
|
||||
for i in self:
|
||||
if i.issue_state == 'on_meet':
|
||||
raise UserError('议题已上会,不能删除')
|
||||
# 管理员跳过状态检查
|
||||
if is_admin:
|
||||
continue
|
||||
# 非可删状态抛出弹窗提醒
|
||||
if i.issue_state not in deletable_states:
|
||||
raise UserError(
|
||||
'议题【%s】已进入流程(当前状态:%s),不能删除!\n'
|
||||
'如需作废,请先走"取消"流程。' % (i.name, state_label[i.issue_state])
|
||||
)
|
||||
return super().unlink()
|
||||
|
||||
def my_unlink(self):
|
||||
"""我的议题删除:非管理员只能删自己创建的,且仅限待推送/待申报/已取消状态"""
|
||||
# 判断当前用户是否为系统管理员
|
||||
is_admin = self.env.user.has_group('base.group_system')
|
||||
# 当前登录用户
|
||||
current_user = self.env.user
|
||||
# 可删除的议题状态:待推送、待申报、已取消
|
||||
deletable_states = ('to_do', 'draft', 'cancel')
|
||||
# 获取议题状态的中文标签映射
|
||||
state_label = dict(self._fields['issue_state'].selection)
|
||||
for i in self:
|
||||
if i.issue_state == 'on_meet':
|
||||
raise UserError('议题已上会,不能删除')
|
||||
# 非可删状态抛出弹窗提醒
|
||||
if i.issue_state not in deletable_states:
|
||||
raise UserError(
|
||||
'议题【%s】已进入流程(当前状态:%s),不能删除!\n'
|
||||
'如需作废,请先走"取消"流程。' % (i.name, state_label[i.issue_state])
|
||||
)
|
||||
# 非管理员只能删除自己创建的议题
|
||||
if not is_admin:
|
||||
if i.employee_id.user_id != current_user:
|
||||
raise UserError('只能删除自己的记录,无权删除他人数据')
|
||||
raise UserError('只能删除自己创建的议题,无权删除他人数据!')
|
||||
return super().unlink()
|
||||
|
||||
@api.depends('name')
|
||||
|
||||
@@ -38,8 +38,10 @@
|
||||
<button name="revoke" string="撤销" type="object" class="btn btn-blue"
|
||||
invisible="issue_state == 'draft'" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue"
|
||||
confirm="确定要取消此议题吗?取消后议题状态将变为「已取消」,不会删除记录。"
|
||||
groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="my_unlink" string="删除" type="object" class="btn btn-blue"
|
||||
confirm="确定要删除此议题吗?删除后不可恢复!"
|
||||
invisible="issue_state not in ['draft', 'to_do']"/>
|
||||
<button name="approval_details" string="审批详情" type="object" class="btn btn-blue"
|
||||
invisible="not issue_approval_id"/>
|
||||
@@ -92,8 +94,8 @@
|
||||
<button name="library_push" string="推送" type="object" class="btn btn-blue"
|
||||
invisible="push_invisible"/>
|
||||
<!-- <button name="revoke" string="撤销" type="object" class="oe_highlight" invisible="issue_state == 'draft'"/>-->
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue" confirm="确定要取消此议题吗?取消后议题状态将变为「已取消」,不会删除记录。"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!"/>
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue" invisible="is_confirm" groups="base.group_system"/>
|
||||
<button name="correction_confirm" string="确认" type="object" class="btn btn-blue" invisible="not is_confirm" groups="base.group_system"/>
|
||||
<button name="approval_details" string="审批详情" type="object" class="btn btn-blue"
|
||||
@@ -317,7 +319,7 @@
|
||||
<field name="issue_library_approval_line_ids" readonly="1">
|
||||
<tree editable="bottom">
|
||||
<button name="open_record" type="object" string="详情" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<field name="issue_library_id" column_invisible="1"/>
|
||||
<field name="res_model" column_invisible="1"/>
|
||||
<field name="res_id" column_invisible="1"/>
|
||||
@@ -485,8 +487,8 @@
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue" invisible="is_confirm"/>
|
||||
<button name="correction_confirm" string="确认" type="object" class="btn btn-blue" invisible="not is_confirm"/>
|
||||
<button name="refunded" string="退回" type="object" class="btn btn-blue" invisible="party_char"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue" confirm="确定要取消此议题吗?取消后议题状态将变为「已取消」,不会删除记录。"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -532,8 +534,8 @@
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue" invisible="is_confirm"/>
|
||||
<button name="correction_confirm" string="确认" type="object" class="btn btn-blue" invisible="not is_confirm"/>
|
||||
<button name="refunded" string="退回" type="object" class="btn btn-blue" invisible="party_char"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue" confirm="确定要取消此议题吗?取消后议题状态将变为「已取消」,不会删除记录。"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -612,7 +614,7 @@
|
||||
<field name="issue_library_approval_line_ids" readonly="1">
|
||||
<tree editable="bottom">
|
||||
<button name="open_record" type="object" string="详情" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<field name="issue_library_id" column_invisible="1"/>
|
||||
<field name="res_model" column_invisible="1"/>
|
||||
<field name="res_id" column_invisible="1"/>
|
||||
@@ -745,8 +747,8 @@
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue" invisible="is_confirm"/>
|
||||
<button name="correction_confirm" string="确认" type="object" class="btn btn-blue" invisible="not is_confirm"/>
|
||||
<button name="refunded" string="退回" type="object" class="btn btn-blue" invisible="class_char"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue" confirm="确定要取消此议题吗?取消后议题状态将变为「已取消」,不会删除记录。"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -823,7 +825,7 @@
|
||||
<field name="issue_library_approval_line_ids" readonly="1">
|
||||
<tree editable="bottom">
|
||||
<button name="open_record" type="object" string="详情" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<field name="issue_library_id" column_invisible="1"/>
|
||||
<field name="res_model" column_invisible="1"/>
|
||||
<field name="res_id" column_invisible="1"/>
|
||||
@@ -943,8 +945,8 @@
|
||||
<button name="correction" string="修正提醒" type="object" class="btn btn-blue" invisible="is_confirm"/>
|
||||
<button name="correction_confirm" string="确认" type="object" class="btn btn-blue" invisible="not is_confirm"/>
|
||||
<button name="refunded" string="退回" type="object" class="btn btn-blue" invisible="boss_char"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue"/>
|
||||
<button name="issue_cancel" string="取消" type="object" class="btn btn-blue" confirm="确定要取消此议题吗?取消后议题状态将变为「已取消」,不会删除记录。"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -1021,7 +1023,7 @@
|
||||
<field name="issue_library_approval_line_ids" readonly="1">
|
||||
<tree editable="bottom">
|
||||
<button name="open_record" type="object" string="详情" class="btn btn-blue"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<button name="unlink" string="删除" type="object" class="btn btn-blue" confirm="确定要删除此议题吗?删除后不可恢复!" groups="soong_workflow.group_soong_workflow_manager"/>
|
||||
<field name="issue_library_id" column_invisible="1"/>
|
||||
<field name="res_model" column_invisible="1"/>
|
||||
<field name="res_id" column_invisible="1"/>
|
||||
|
||||
Reference in New Issue
Block a user