diff --git a/yuthon_issue/models/inherit_hr_employee.py b/yuthon_issue/models/inherit_hr_employee.py
index dd7441d9f..67e95c511 100644
--- a/yuthon_issue/models/inherit_hr_employee.py
+++ b/yuthon_issue/models/inherit_hr_employee.py
@@ -14,6 +14,13 @@ class YuthonHrEmployee(models.Model):
'班子会议题': 'group_team_topic',
'董事会议题': 'group_board_topic',
'议题管理员': 'group_topic_admin',
+ '物管议题管理员':'group_property_admin',
+ '物管党支委议题':'property_group_party_topic',
+ '物管班子会议题':'property_group_team_topic',
+ '粮储党支委议题':'group_grain_party_topic',
+ '粮储班子会议题':'group_grain_team_topic',
+ '粮储议题管理员':'group_grain_admin',
+
}
old_users_ids = self.user_role_ids
for employee in self:
diff --git a/yuthon_issue/models/issue_approval.py b/yuthon_issue/models/issue_approval.py
index 99cb7096c..08c790aeb 100644
--- a/yuthon_issue/models/issue_approval.py
+++ b/yuthon_issue/models/issue_approval.py
@@ -11,15 +11,15 @@ class IssueApproval(models.Model):
name = fields.Char(string='标题', required=True)
code = fields.Char(string='编号', required=True, copy=False, default=lambda self: self.env['ir.sequence'].next_by_code('issue_approval_code'))
+ create_time = fields.Date(string='创建日期', default=lambda self: fields.Date.today())
+ employee_id = fields.Many2one('hr.employee', string="经办人",default=lambda self: self.env.user.employee_id)
+ department_id = fields.Many2one(related='employee_id.department_id', string="部门")
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储'), ('tctj', '天投城建'),
- ('thtjbb', '天河投资本部')], string="所属公司",required=True)
-
- department_id = fields.Many2one('hr.department', string="部门")
- create_time = fields.Date(string='创建日期', default=lambda self: fields.Date.today())
- user_id = fields.Many2one('res.users', string="经办人", default=lambda self: self.env.user)
+ ('thtjbb', '天河投资本部')], string="所属公司",
+ related='employee_id.yuthon_company')
meeting_details = fields.Char(string="会议详情")
- job_id = fields.Many2one('hr.job', string="岗位")
+ job_id = fields.Many2one('employee_id.job_id', string="岗位")
is_attend = fields.Boolean(string="是否上会", default=True)
issue_text = fields.Html(string="正文")
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
@@ -62,23 +62,14 @@ class IssueApproval(models.Model):
def bottom_meeting_minutes(self):
pass
- @api.onchange('issue_approval_ids')
- def onchange_name(self):
- specifics_list = []
- if self.issue_approval_ids:
- for issue in self.issue_approval_ids:
- if issue.issue_library_id.name:
- specifics_list.append(issue.issue_library_id.name)
- self.name = ';'.join(specifics_list) if specifics_list else ''
-
class IssueApprovalLine(models.Model):
_name = 'issue.approval.line'
_description = '关联议题明细'
issue_approval_id = fields.Many2one('issue.approval', string='议题审批')
-
issue_library_id = fields.Many2one('issue.library',string='议题事项')
+ employee_id = fields.Many2one('hr.employee', string='创建人')
approval_decision_sequence = fields.Char(string='决策清单')
is_party = fields.Boolean(string="党之委会", default=False)
is_class = fields.Boolean(string="班子会", default=False)
@@ -86,8 +77,4 @@ class IssueApprovalLine(models.Model):
is_note = fields.Boolean(string="上级单位", default=False)
-class IssueApprovalRoomLine(models.Model):
- _name = 'issue.approval.room.line'
-
-
diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py
index e14bcdfa6..3153282f9 100644
--- a/yuthon_issue/models/issue_library.py
+++ b/yuthon_issue/models/issue_library.py
@@ -12,7 +12,7 @@ class IssueLibrary(models.Model):
name = fields.Char(string='议题事项')
code = fields.Char(string='编号', required=True, copy=False,
default=lambda self: self.env['ir.sequence'].next_by_code('issue_library_code'))
- state = fields.Selection([('draft', '待提交'), ('approval', '审批中'), ('will', '待上会'), ('on_meet', '已上会'), ('cancel', '已取消')],
+ state = fields.Selection([('draft', '待提交'), ('approval', '审批中'), ('will', '待上会'), ('on_meet', '已上会'), ('cancel', '已取消'),('on_approval','已审批')],
default='draft', string="议题状态")
is_party = fields.Boolean(string="党之委会", default=False, compute='_compute_issue_library_line_ids')
is_class = fields.Boolean(string="班子会", default=False, compute='_compute_issue_library_line_ids')
@@ -36,7 +36,7 @@ class IssueLibrary(models.Model):
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储'), ('tctj', '天投城建')], string="所属公司", related='employee_id.yuthon_company')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', related='employee_id.user_role_ids')
-
+ approval_name = fields.Char(string="审批标题")
meeting_place = fields.Char(string="会议地点")
meeting_name = fields.Char(string="会议名称")
@api.onchange('issue_library_line_ids')
@@ -55,9 +55,11 @@ class IssueLibrary(models.Model):
issue_active_ids = self.env["issue.library"].browse(self._context.get('active_ids', self._context.get('active_id')))
form_id = self.env.ref("yuthon_issue.issue_library_approval_form").id
issue_decision_lines = []
+ specifics_list = []
if not issue_active_ids:
issue_active_ids = self
for issue_record in issue_active_ids:
+ specifics_list.append(issue_record.name)
issue_record.write({"state": "approval"})
issue_decision_lines.append((0, 0, {
'issue_library_id': issue_record.id,
@@ -65,25 +67,33 @@ class IssueLibrary(models.Model):
'is_party':issue_record.is_party,
'is_class': issue_record.is_class,
'is_boss': issue_record.is_boss,
- 'is_note': issue_record.is_note
+ 'is_note': issue_record.is_note,
+ 'employee_id':issue_record.employee_id.id
}))
+ issue_approval_id = self.env['issue.approval'].create({
+ 'issue_approval_ids': issue_decision_lines,
+ 'name': ';'.join(specifics_list),
+ 'employee_id': self.employee_id.id,
+ })
+ self.issue_approval_id = issue_approval_id
return {
"type": "ir.actions.act_window",
"name": "批量提交",
"res_model": "issue.approval",
"views": [[form_id, "form"]],
"context": {
- "default_issue_approval_ids": issue_decision_lines,
+ "id": issue_approval_id.id,
}
}
+
def issue_cancel(self):
self.write({"state": "cancel"})
def all_meeting_issue(self):
for meet in self:
- if meet.state == 'on_meet':
- raise UserError('不可重复上会')
+ if meet.state in 'on_meet' or meet.state != 'on_approval':
+ raise UserError('当前状态不可上会')
meet.write({"state": "on_meet"})
issue_active_ids = self.env["issue.library"].browse(
self._context.get('active_ids', self._context.get('active_id')))
@@ -98,7 +108,20 @@ class IssueLibrary(models.Model):
'default_room_booking_library_ids': [(6, 0, issue_active_ids.ids)],
}
}
-
+ def approval_details(self):
+ for record in self:
+ if record.state in ['cancel','draft']:
+ raise UserError('当前状态不可查看审批详情')
+ self.ensure_one()
+ approval_id = self.issue_approval_id.id
+ form_id = self.env.ref("yuthon_issue.issue_library_approval_form").id
+ return{
+ "type": "ir.actions.act_window",
+ "name": "审批详情",
+ "res_model": "issue.approval",
+ "views": [[form_id, "form"]],
+ "res_id": approval_id
+ }
@api.depends('issue_library_line_ids')
def _compute_issue_library_line_ids(self):
for line in self:
@@ -124,6 +147,7 @@ class IssueLibraryLine(models.Model):
team_meet = fields.Selection(related='issue_approval_decision_id.team_meet', string='经营班子会')
board_meet = fields.Selection(related='issue_approval_decision_id.board_meet', string='董事会')
district_bureau = fields.Selection(related='issue_approval_decision_id.district_bureau', string='上级单位')
+ ordinal = fields.Char(related='issue_approval_decision_id.sequence',string='序号')
class IssueLibraryApprovalLine(models.Model):
diff --git a/yuthon_issue/security/ir.model.access.csv b/yuthon_issue/security/ir.model.access.csv
index e445b2d09..5d1cf9a60 100644
--- a/yuthon_issue/security/ir.model.access.csv
+++ b/yuthon_issue/security/ir.model.access.csv
@@ -13,3 +13,10 @@ access_issue_library,issue_library,model_issue_library,group_topic_admin,1,1,1,1
access_issue_library,issue_library,model_issue_library,group_party_topic,1,1,1,1
access_issue_library,issue_library,model_issue_library,group_team_topic,1,1,1,1
access_issue_library,issue_library,model_issue_library,group_board_topic,1,1,1,1
+
+access_issue_library,issue_library,model_issue_library,group_property_admin,1,1,1,1
+access_issue_library,issue_library,model_issue_library,property_group_party_topic,1,1,1,1
+access_issue_library,issue_library,model_issue_library,property_group_team_topic,1,1,1,1
+access_issue_library,issue_library,model_issue_library,group_grain_admin,1,1,1,1
+access_issue_library,issue_library,model_issue_library,group_grain_party_topic,1,1,1,1
+access_issue_library,issue_library,model_issue_library,group_grain_team_topic,1,1,1,1
diff --git a/yuthon_issue/security/issue_security_group.xml b/yuthon_issue/security/issue_security_group.xml
index 558b739cf..b1b8442cd 100644
--- a/yuthon_issue/security/issue_security_group.xml
+++ b/yuthon_issue/security/issue_security_group.xml
@@ -22,11 +22,49 @@
-
+
+
+ 物管党支委议题
+
+
+
+
+ 物管班子会议题
+
+
+
+
+ 物管议题管理员
+
+
+
+
+
+
+ 粮储党支委议题
+
+
+
+
+ 粮储班子会议题
+
+
+
+
+ 粮储议题管理员
+
+
+
+
+
+
+
议题管理员
-
+
\ No newline at end of file
diff --git a/yuthon_issue/views/issue_approval_views.xml b/yuthon_issue/views/issue_approval_views.xml
index a28886588..5a4c1eac6 100644
--- a/yuthon_issue/views/issue_approval_views.xml
+++ b/yuthon_issue/views/issue_approval_views.xml
@@ -25,7 +25,7 @@
-
+
@@ -56,6 +56,7 @@
+
diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml
index 7e4e015b0..9b81493d0 100644
--- a/yuthon_issue/views/issue_library_views.xml
+++ b/yuthon_issue/views/issue_library_views.xml
@@ -19,6 +19,7 @@
+
@@ -50,10 +51,10 @@
-
-
-
-
+
+
+
+
@@ -76,6 +77,7 @@
+
@@ -130,118 +132,8 @@
-
-
- issue.library.tree
- issue.library
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- issue.library.tree
- issue.library
-
-
-
-
-
-
- 议题库
- issue.library
- tree,form
-
-
-
-
-
- 待提交
- issue.library
- tree,form
- [('state','=','draft')]
-
-
-
- 审批中
+ 已审批
issue.library
tree,form
[('state','=','approval')]
@@ -287,45 +179,6 @@
action = model.all_meeting_issue()
-
- 审批中
- issue.library
- tree,form
- [('state','=','approval')]
-
-
-
-
- 待上会
- issue.library
- tree,form
- [('state','=','will')]
-
-
-
-
- 已上会
- issue.library
- tree,form
- [('state','=','on_meet')]
-
-
-
-
- 已取消
- issue.library
- tree,form
- [('state','=','cancel')]
-
-
issue.library.tree
@@ -395,6 +248,7 @@
+
@@ -536,6 +390,7 @@
+
@@ -676,6 +531,7 @@
+
@@ -748,4 +604,895 @@
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree5')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form5')})]"/>
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+ 议题库
+ issue.library
+ tree,form
+ [('is_boss', '=', True)]
+
+
+
+
+
+
+ 待上会
+ issue.library
+ tree,form
+ [('state','=','will')]
+
+
+
+
+ 已上会
+ issue.library
+ tree,form
+ [('state','=','on_meet')]
+
+
+
+
+ 已取消
+ issue.library
+ tree,form
+ [('state','=','cancel')]
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+ 议题库
+ issue.library
+ tree,form
+ [('is_boss', '=', True)]
+
+
+
+
+
+
+ 待上会
+ issue.library
+ tree,form
+ [('state','=','will')]
+
+
+
+
+ 已上会
+ issue.library
+ tree,form
+ [('state','=','on_meet')]
+
+
+
+
+ 已取消
+ issue.library
+ tree,form
+ [('state','=','cancel')]
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+ 议题库
+ issue.library
+ tree,form
+ [('is_boss', '=', True)]
+
+
+
+
+
+
+ 待上会
+ issue.library
+ tree,form
+ [('state','=','will')]
+
+
+
+
+ 已上会
+ issue.library
+ tree,form
+ [('state','=','on_meet')]
+
+
+
+
+ 已取消
+ issue.library
+ tree,form
+ [('state','=','cancel')]
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+ 议题库
+ issue.library
+ tree,form
+ [('is_boss', '=', True)]
+
+
+
+
+
+ 待上会
+ issue.library
+ tree,form
+ [('state','=','will')]
+
+
+
+
+ 已上会
+ issue.library
+ tree,form
+ [('state','=','on_meet')]
+
+
+
+
+ 已取消
+ issue.library
+ tree,form
+ [('state','=','cancel')]
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+ 议题库
+ issue.library
+ tree,form
+
+
+
+
+
+ 已审批
+ issue.library
+ tree,form
+ [('state','=','approval')]
+
+
+
+
+ 待上会
+ issue.library
+ tree,form
+ [('state','=','will')]
+
+
+
+
+ 已上会
+ issue.library
+ tree,form
+ [('state','=','on_meet')]
+
+
+
+
+ 已取消
+ issue.library
+ tree,form
+ [('state','=','cancel')]
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.library.tree
+ issue.library
+
+
+
+
+
+
+ 议题库
+ issue.library
+ tree,form
+
+
+
+
+
+ 已审批
+ issue.library
+ tree,form
+ [('state','=','approval')]
+
+
+
+
+ 待上会
+ issue.library
+ tree,form
+ [('state','=','will')]
+
+
+
+
+ 已上会
+ issue.library
+ tree,form
+ [('state','=','on_meet')]
+
+
+
+
+ 已取消
+ issue.library
+ tree,form
+ [('state','=','cancel')]
+
+
\ No newline at end of file
diff --git a/yuthon_issue/views/menus.xml b/yuthon_issue/views/menus.xml
index 09beae9ee..945bbf17e 100644
--- a/yuthon_issue/views/menus.xml
+++ b/yuthon_issue/views/menus.xml
@@ -20,15 +20,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+ sequence="28"/>
+ sequence="30"/>