pengyuthon
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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="会议室"
|
||||
|
||||
Reference in New Issue
Block a user