pengyuthon

This commit is contained in:
李鹏宇
2024-10-11 10:42:01 +08:00
parent a36036473d
commit 3abe04f381
10 changed files with 215 additions and 116 deletions
+1
View File
@@ -21,6 +21,7 @@
'views/issue_approval_boss_views.xml',
'views/inherit_room_booking_views.xml',
'views/issue_approval_decision_views.xml',
'views/issue_approval_decision_type_views.xml',
'views/menus.xml',
],
'installable': True,
+1
View File
@@ -7,3 +7,4 @@ from . import issue_approval_class
from . import issue_approval_boss
from . import inherit_room_booking
from . import issue_approval_decision
from . import issue_approval_decision_type
+30 -25
View File
@@ -7,37 +7,42 @@ class IssueApprovalDecision(models.Model):
_description = '决策清单'
_order = 'sequence asc'
name = fields.Char(string='事项')
sequence = fields.Char(string='序号', store=True)
decision_id = fields.Many2one('issue.approval.decision', string='上级事项')
child_ids = fields.One2many('issue.approval.decision', 'decision_id', string='下级事项')
decision_type_id = fields.Many2one('issue.approval.decision.type', string='事项类别')
sequence = fields.Char(related='decision_type_id.sequence', string='序号', store=True)
# decision_id = fields.Many2one('issue.approval.decision', string='上级事项')
# child_ids = fields.One2many('issue.approval.decision', 'decision_id', string='下级事项')
specifics = fields.Char(string='具体事项')
council = fields.Selection([('approval', '审'), ('decide', '决')], string='党总委员会')
team_meet = fields.Selection([('approval', '审'), ('decide', '决')], string='经营班子会')
board_meet = fields.Selection([('approval', '审'), ('decide', '决'), ('commission', '授权投决会')], string='董事会')
district_bureau = fields.Char(string='区政府、区财政局')
district_bureau = fields.Selection([('record', '备案'), ('approved', '核准'), ('record_approved', '备案、核准')], string='区政府、区财政局')
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储'), ('tctj', '天投城建')], string="所属公司")
department_id = fields.Many2one('hr.department', string="部门")
start_date = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
remarks = fields.Char(string='备注')
@api.onchange('sequence', 'decision_id')
def _onchange_department_code(self):
for code in self:
if code.sequence and code.decision_id:
code.sequence = code.decision_id.sequence + ('.' + code.sequence if code.sequence else '')
else:
code.sequence = code.sequence
code._update_child_sequences()
def _update_child_sequences(self):
def recursive_update(parent, parent_sequence):
# 遍历每个子记录
for child in parent.child_ids:
# 使用父级的 sequence 更新子级的 sequence
new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '')
self.env['issue.approval.decision'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence})
# 递归处理孙级
recursive_update(child, new_sequence)
# 从当前记录开始递归更新所有子孙级别
recursive_update(self, self.sequence)
# @api.onchange('sequence', 'decision_id')
# def _onchange_department_code(self):
# for code in self:
# if code.sequence and code.decision_id:
# code.sequence = code.decision_id.sequence + ('.' + code.sequence if code.sequence else '')
# else:
# code.sequence = code.sequence
# code._update_child_sequences()
#
# def _update_child_sequences(self):
# def recursive_update(parent, parent_sequence):
# # 遍历每个子记录
# for child in parent.child_ids:
# # 使用父级的 sequence 更新子级的 sequence
# new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '')
# self.env['issue.approval.decision'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence})
# # 递归处理孙级
# recursive_update(child, new_sequence)
# # 从当前记录开始递归更新所有子孙级别
# recursive_update(self, self.sequence)
@@ -0,0 +1,35 @@
from odoo import api, fields, models, tools
from odoo.exceptions import ValidationError
class IssueApprovalDecisionType(models.Model):
_name = "issue.approval.decision.type"
_description = '决策清单事项类别配置'
_order = 'sequence asc'
_rec_name = 'name'
name = fields.Char(string="名称")
sequence = fields.Char(string='序号', store=True)
decision_type_id = fields.Many2one('issue.approval.decision.type', string='上级事项')
child_ids = fields.One2many('issue.approval.decision.type', 'decision_type_id', string='下级事项')
@api.onchange('sequence', 'decision_type_id')
def _onchange_department_code(self):
for code in self:
if code.sequence and code.decision_type_id:
code.sequence = code.decision_type_id.sequence + ('.' + code.sequence if code.sequence else '')
else:
code.sequence = code.sequence
code._update_child_sequences()
def _update_child_sequences(self):
def recursive_update(parent, parent_sequence):
# 遍历每个子记录
for child in parent.child_ids:
# 使用父级的 sequence 更新子级的 sequence
new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '')
self.env['issue.approval.decision.type'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence})
# 递归处理孙级
recursive_update(child, new_sequence)
# 从当前记录开始递归更新所有子孙级别
recursive_update(self, self.sequence)
@@ -4,4 +4,5 @@ access_issue_approval_boss,issue_approval_boss,model_issue_approval_boss,base.gr
access_issue_approval_class,issue_approval_class,model_issue_approval_class,base.group_user,1,1,1,1
access_issue_approval_party,issue_approval_party,model_issue_approval_party,base.group_user,1,1,1,1
access_issue_approval_decision,issue_approval_decision,model_issue_approval_decision,base.group_user,1,1,1,1
access_issue_approval_decision_type,issue_approval_decision_type,model_issue_approval_decision_type,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
4 access_issue_approval_class issue_approval_class model_issue_approval_class base.group_user 1 1 1 1
5 access_issue_approval_party issue_approval_party model_issue_approval_party base.group_user 1 1 1 1
6 access_issue_approval_decision issue_approval_decision model_issue_approval_decision base.group_user 1 1 1 1
7 access_issue_approval_decision_type issue_approval_decision_type model_issue_approval_decision_type base.group_user 1 1 1 1
8
@@ -13,7 +13,6 @@
<field name="notice_documents_ids" string="会议附件材料"/>
</tree>
</field>
</page>
</xpath>
</field>
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_issue_approval_decision_type_tree" model="ir.ui.view">
<field name="name">issue.approval.decision.type.tree</field>
<field name="model">issue.approval.decision.type</field>
<field name="arch" type="xml">
<tree string="决策清单层级配置">
<field name="sequence"/>
<field name="name"/>
<field name="decision_type_id"/>
</tree>
</field>
</record>
<record id="view_issue_approval_decision_type_form" model="ir.ui.view">
<field name="name">issue.approval.decision.type.form</field>
<field name="model">issue.approval.decision.type</field>
<field name="arch" type="xml">
<form string="决策清单层级配置">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group col="2">
<group>
<field name="sequence"/>
<field name="decision_type_id"/>
<field name="child_ids" force_save="1" invisible="1"/>
</group>
<group/>
</group>
</sheet>
</form>
</field>
</record>
<record id="issue_approval_decision_type_action" model="ir.actions.act_window">
<field name="name">决策清单层级配置</field>
<field name="res_model">issue.approval.decision.type</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -6,14 +6,18 @@
<field name="arch" type="xml">
<tree string="决策清单">
<field name="sequence"/>
<field name="name"/>
<field name="decision_id"/>
<field name="decision_type_id"/>
<!-- <field name="decision_id"/>-->
<field name="specifics"/>
<field name="council"/>
<field name="team_meet"/>
<field name="board_meet"/>
<field name="district_bureau"/>
<field name="remarks"/>
<field name="yuthon_company"/>
<field name="department_id"/>
<field name="start_date"/>
<field name="end_date"/>
</tree>
</field>
</record>
@@ -25,15 +29,15 @@
<form string="决策清单">
<sheet>
<div class="oe_title">
<label for="name"/>
<label for="decision_type_id"/>
<h1>
<field name="name" required="1"/>
<field name="decision_type_id" required="1"/>
</h1>
</div>
<group col="2">
<group>
<field name="decision_id"/>
<field name="child_ids" force_save="1" invisible="1"/>
<!-- <field name="decision_id"/>-->
<!-- <field name="child_ids" force_save="1" invisible="1"/>-->
<field name="sequence"/>
<field name="council"/>
</group>
@@ -43,9 +47,13 @@
</group>
<group>
<field name="board_meet"/>
<field name="start_date"/>
<field name="yuthon_company"/>
<field name="department_id"/>
</group>
<group>
<field name="district_bureau"/>
<field name="district_bureau"/>
<field name="end_date"/>
</group>
</group>
<group>
+78 -83
View File
@@ -1,93 +1,88 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem
id="tianhe_issue_library_menu_root"
name="议题管理"
web_icon="yuthon_issue,static/description/icon.png"
sequence="1"/>
<menuitem id="tianhe_issue_library_menu_root"
name="议题管理"
web_icon="yuthon_issue,static/description/icon.png"
sequence="1"/>
<!-- 天河投资议题库管理 -->
<menuitem
id="tianhe_issue_library_menu"
parent="tianhe_issue_library_menu_root"
name="议题库"
sequence="5"/>
<!-- 天河投资议题库管理 -->
<menuitem id="tianhe_issue_library_menu"
parent="tianhe_issue_library_menu_root"
name="议题库"
sequence="5"/>
<menuitem
id="tianhe_issue_library_all"
parent="tianhe_issue_library_menu"
name="全部"
action="issue_library_action"
sequence="1"/>
<menuitem id="tianhe_issue_library_all"
parent="tianhe_issue_library_menu"
name="全部"
action="issue_library_action"
sequence="1"/>
<menuitem
id="tianhe_issue_library_menu_will"
parent="tianhe_issue_library_menu"
name="待上会"
action="issue_library_action_will"
sequence="5"/>
<menuitem id="tianhe_issue_library_menu_will"
parent="tianhe_issue_library_menu"
name="待上会"
action="issue_library_action_will"
sequence="5"/>
<menuitem
id="tianhe_issue_library_menu_on_meet"
parent="tianhe_issue_library_menu"
name="已上会"
action="issue_library_action_done"
sequence="10"/>
<menuitem id="tianhe_issue_library_menu_on_meet"
parent="tianhe_issue_library_menu"
name="已上会"
action="issue_library_action_done"
sequence="10"/>
<!-- 物管,粮储 议题库管理 -->
<menuitem
id="tianhe_other_issue_library_menu"
parent="tianhe_issue_library_menu_root"
name="子部门议题库"
sequence="8"/>
<menuitem
id="tianhe_issue_library_all2"
parent="tianhe_other_issue_library_menu"
name="全部"
action="issue_library_action2"
sequence="1"/>
<!-- 物管,粮储 议题库管理 -->
<menuitem id="tianhe_other_issue_library_menu"
parent="tianhe_issue_library_menu_root"
name="子部门议题库"
sequence="8"/>
<menuitem id="tianhe_issue_library_all2"
parent="tianhe_other_issue_library_menu"
name="全部"
action="issue_library_action2"
sequence="1"/>
<menuitem
id="other_issue_library_menu_will"
parent="tianhe_other_issue_library_menu"
name="待上会"
action="issue_library_action_will2"
sequence="5"/>
<menuitem
id="other_issue_library_menu_on_meet"
parent="tianhe_other_issue_library_menu"
name="已上会"
action="issue_library_action_done2"
sequence="10"/>
<menuitem id="other_issue_library_menu_will"
parent="tianhe_other_issue_library_menu"
name="待上会"
action="issue_library_action_will2"
sequence="5"/>
<menuitem id="other_issue_library_menu_on_meet"
parent="tianhe_other_issue_library_menu"
name="已上会"
action="issue_library_action_done2"
sequence="10"/>
<menuitem
id="issue_approval_menu"
parent="tianhe_issue_library_menu_root"
name="议题审批"
action="issue_library_action"
sequence="9"/>
<menuitem
id="issue_approval_party_menu"
parent="issue_approval_menu"
name="党总支议题审批"
action="issue_approval_party_action"
sequence="10"/>
<menuitem
id="issue_approval_class_menu"
parent="issue_approval_menu"
name="领导班子议题审批"
action="issue_approval_class_action"
sequence="20"/>
<menuitem
id="issue_approval_boss_menu"
parent="issue_approval_menu"
name="董事会议题审批"
action="issue_approval_boss_action"
sequence="30"/>
<menuitem
id="issue_approval_decision_menu"
parent="tianhe_issue_library_menu_root"
name="决策清单"
action="issue_approval_decision_action"
sequence="40"/>
<menuitem id="issue_approval_menu"
parent="tianhe_issue_library_menu_root"
name="议题审批"
action="issue_library_action"
sequence="9"/>
<menuitem id="issue_approval_party_menu"
parent="issue_approval_menu"
name="党总支议题审批"
action="issue_approval_party_action"
sequence="10"/>
<menuitem id="issue_approval_class_menu"
parent="issue_approval_menu"
name="领导班子议题审批"
action="issue_approval_class_action"
sequence="20"/>
<menuitem id="issue_approval_boss_menu"
parent="issue_approval_menu"
name="董事会议题审批"
action="issue_approval_boss_action"
sequence="30"/>
<menuitem id="issue_approval_decision_menu"
parent="tianhe_issue_library_menu_root"
name="决策清单"
action="issue_approval_decision_action"
sequence="40"/>
<menuitem id="issue_approval_decision_setting_menu"
parent="tianhe_issue_library_menu_root"
name="配置"
sequence="50"/>
<menuitem id="issue_approval_decision_type_menu"
parent="issue_approval_decision_setting_menu"
name="决策清单层级配置"
action="issue_approval_decision_type_action"
sequence="1"/>
</odoo>
+9
View File
@@ -203,6 +203,15 @@
name="决策清单"
action="yuthon_issue.issue_approval_decision_action"
sequence="7"/>
<menuitem id="issue_approval_decision_setting_menu_board"
parent="tianhe_issue_library_menu_root_board"
name="配置"
sequence="9"/>
<menuitem id="issue_approval_decision_type_menu_board"
parent="issue_approval_decision_setting_menu_board"
name="决策清单层级配置"
action="yuthon_issue.issue_approval_decision_type_action"
sequence="1"/>
<!-- 会议室 -->
<menuitem id="room_menu_root_board"
name="会议室"