添加功能

This commit is contained in:
zhouzhou
2024-10-22 18:06:04 +08:00
parent e1a3946a0b
commit 2eb2f2c67f
8 changed files with 158 additions and 30 deletions
@@ -3,6 +3,7 @@ class YuthonIndexApproval(models.Model):
_name = 'yuthon.index.approval'
_description = "组织指标库变更管理"
_rec_name = 'name'
_inherit = 'soong.workflow.mixin'
name = fields.Char('标题')
creation_time = fields.Datetime(string='申请日期', default=lambda self: fields.Datetime.now())
@@ -10,3 +11,61 @@ class YuthonIndexApproval(models.Model):
reason_text = fields.Html(string='申请事由')
change_index_library_ids = fields.One2many("yuthon.index.management",'change_index_library_id',string="组织指标库变更明细")
new_index_library_ids = fields.One2many("new.index.management.line",'new_change_index_library_id',string="新组织指标库变更明细")
@api.onchange('change_index_library_ids')
def onchange_change_index_library_ids(self):
new_lines = []
for old in self:
for new in old.change_index_library_ids:
new_lines.append((0, 0, {
'new_dimension': new.dimension,
'new_development_goals': new.development_goals,
'new_index_name': new.index_name,
'new_index_definition': new.index_definition,
'new_index_type': new.index_type,
'new_index_compute': new.index_compute,
'new_compute_type': new.compute_type,
'new_check_norm': new.check_norm,
'new_department_ids': new.department_ids,
'new_in_charge_role_ids': new.in_charge_role_ids,
'new_employee_id': new.employee_id,
'new_start_index_time': new.start_index_time,
'new_end_index_time': new.end_index_time,
'new_unit_compute': new.unit_compute,
'new_weight': new.weight,
'new_compute_method': new.compute_method,
'new_compute_act': new.compute_act,
}))
self.new_index_library_ids = new_lines
class NewIndexManagement(models.Model):
_name = 'new.index.management.line'
_description = "新组织指标库变更明细"
new_change_index_library_id = fields.Many2one('yuthon.index.approval',string="关联组织绩效指标库变更")
new_dimension = fields.Char('维度', required=True)
new_development_goals = fields.Char('发展目标', required=True)
new_index_name = fields.Char('指标名称', required=True)
new_index_definition = fields.Text('指标定义', required=True)
new_index_type = fields.Selection([('kpi', 'KPI'),
('gs', 'GS'),
('refused_index', '否决指标'), ], '指标类别')
new_index_compute = fields.Char('指标计算公式', required=True)
new_compute_type = fields.Selection([('bad_index', '反向指标'),
('good_index', '正向指标'),
('two_index', '双向指标'), ], '计算类别')
new_check_norm = fields.Char('考核标准', required=True)
new_department_ids = fields.Many2many("hr.department", string="指标来源", required=True)
new_in_charge_role_ids = fields.Many2many('soong.user.role', string='角色')
new_employee_id = fields.Many2one('hr.employee', string="人员")
new_start_index_time = fields.Date(string='生效时间', required=True)
new_end_index_time = fields.Date(string='失效时间')
new_unit_compute = fields.Char('计算单位')
new_weight = fields.Char(string="权重%")
new_compute_method = fields.Char(string="计算方法")
new_compute_act = fields.Char(string="计划安排及具体措施/行动")
@@ -35,8 +35,7 @@ class YuthonIndexManagement(models.Model):
index_duty_approval_id = fields.Many2one('yuthon.duty.approval', string="部门责任变更明细")
def put_adjustment_approval(self):
index_applicant_ids = self.env["yuthon.index.management"].browse(
self._context.get('active_ids', self._context.get('active_id')))
index_applicant_ids = self.env["yuthon.index.management"].browse(self._context.get('active_ids', self._context.get('active_id')))
index_applicant_data = [(6, 0,index_applicant_ids.ids)]
form_id = self.env.ref('yuthon_performance.yuthon_index_approval_form').id
return {
@@ -45,23 +44,16 @@ class YuthonIndexManagement(models.Model):
'view_mode': 'form',
'res_model': 'yuthon.index.approval',
'views': [(form_id, 'form')],
'context': {'default_change_index_library_ids': index_applicant_data}
'context': {'default_change_index_library_ids': index_applicant_data,}
}
def open_record(self):
return {
"type": "ir.actions.act_window",
"res_model": 'yuthon.index.management',
"res_id": self.id,
"name":"组织库详情",
"view_mode": "form",
}
def put_assessment_tasks_approval(self):
pass
# index_applicant_ids = self.env["yuthon.index.management"].browse(
# self._context.get('active_ids', self._context.get('active_id')))
# index_applicant_data = [(6, 0,index_applicant_ids.ids)]
# form_id = self.env.ref('yuthon_performance.yuthon_duty_management_form').id
# if self.index_type == 'kpi':
# context = {'default_performance_kpi_ids': index_applicant_data}
# else:
# context = {'default_performance_gs_ids': index_applicant_data}
# return{
# 'name': '计划安排及具体措施/行动',
# 'type': 'ir.actions.act_window',
# 'view_mode': 'form',
# 'res_model': 'yuthon.duty.management',
# 'views': [(form_id, 'form')],
# 'context': context
# }
@@ -5,6 +5,7 @@ class YuthonEmployeeApproval(models.Model):
_name = 'yuthon.employee.approval'
_description = "员工指标库变更管理"
_rec_name = 'name'
_inherit = 'soong.workflow.mixin'
name = fields.Char('标题')
creation_time = fields.Datetime(string='申请日期', default=lambda self: fields.Datetime.now())
@@ -12,3 +13,33 @@ class YuthonEmployeeApproval(models.Model):
reason_text = fields.Html(string='申请事由')
change_employee_library_ids = fields.One2many("yuthon.index.employee",'change_employee_library_id',string="员工指标库库变更明细")
new_change_employee_library_ids = fields.One2many("new.employee.library.line",'new_change_employee_library_id',string="新员工指标库变更明细")
@api.onchange('change_employee_library_ids')
def _onchange_change_employee_library_ids(self):
new_lines = []
for old in self:
for new in old.change_employee_library_ids:
new_lines.append((0, 0,{
'new_users_role_ids': new.users_role_ids,
'new_department_ids': new.department_ids,
'new_employee_ids': new.employee_ids,
'new_dimension': new.dimension,
'new_start_index_time':new.start_index_time,
'new_end_index_time': new.end_index_time,
}))
self.new_change_employee_library_ids = new_lines
class NewEmployeeLibraryLine(models.Model):
_name = 'new.employee.library.line'
_description = "新员工指标库变更明细"
new_change_employee_library_id = fields.Many2one('yuthon.employee.approval', string='关联员工指标库变更')
new_users_role_ids = fields.Many2many('soong.user.role', string='角色')
new_department_ids = fields.Many2many('hr.department', string='部门')
new_employee_ids = fields.Many2many('hr.employee', string='人员')
new_dimension = fields.Char('评价维度', required=True)
new_start_index_time = fields.Datetime('开始时间', required=True)
new_end_index_time = fields.Datetime('结束时间', required=True)
@@ -21,4 +21,6 @@ access_yuthon_appraisal_line_detail,yuthon_appraisal_line_detail,model_yuthon_ap
access_yuthon_role_detail_lines,yuthon_role_detail_lines,model_yuthon_role_detail_lines,base.group_user,1,1,1,1
access_yuthon_assessment_tasks_lines,yuthon_assessment_tasks_lines,model_yuthon_assessment_tasks_lines,base.group_user,1,1,1,1
access_yuthon_assessment_tasks_wizard,yuthon_assessment_tasks_wizard,model_yuthon_assessment_tasks_wizard,base.group_user,1,1,1,1
access_yuthon_yuthon_index_employee_line,yuthon_index_employee_line,model_yuthon_index_employee_line,base.group_user,1,1,1,1
access_yuthon_index_employee_line,yuthon_index_employee_line,model_yuthon_index_employee_line,base.group_user,1,1,1,1
access_new_index_management_line,new_index_management_line,model_new_index_management_line,base.group_user,1,1,1,1
access_new_employee_library_line,new_employee_library_line,model_new_employee_library_line,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
21 access_yuthon_role_detail_lines yuthon_role_detail_lines model_yuthon_role_detail_lines base.group_user 1 1 1 1
22 access_yuthon_assessment_tasks_lines yuthon_assessment_tasks_lines model_yuthon_assessment_tasks_lines base.group_user 1 1 1 1
23 access_yuthon_assessment_tasks_wizard yuthon_assessment_tasks_wizard model_yuthon_assessment_tasks_wizard base.group_user 1 1 1 1
24 access_yuthon_yuthon_index_employee_line access_yuthon_index_employee_line yuthon_index_employee_line model_yuthon_index_employee_line base.group_user 1 1 1 1
25 access_new_index_management_line new_index_management_line model_new_index_management_line base.group_user 1 1 1 1
26 access_new_employee_library_line new_employee_library_line model_new_employee_library_line base.group_user 1 1 1 1
@@ -34,9 +34,10 @@
</group>
</group>
<notebook>
<page string="组织绩效">
<field name="change_index_library_ids">
<tree>
<page string="组织绩效详情">
<group string="原指标库">
<field name="change_index_library_ids" string=" ">
<tree editable="bottom" create="false" delete="false" edit="false">
<field name="dimension"/>
<field name="development_goals"/>
<field name="index_name"/>
@@ -50,8 +51,29 @@
<field name="employee_id"/>
<field name="start_index_time"/>
<field name="end_index_time"/>
<button name="open_record" type="object" string="详情信息"/>
</tree>
</field>
</group>
<group string="新指标库">
<field name="new_index_library_ids" string=" ">
<tree editable="bottom" delete="false">
<field name="new_dimension"/>
<field name="new_development_goals"/>
<field name="new_index_name"/>
<field name="new_index_definition"/>
<field name="new_index_type"/>
<field name="new_index_compute"/>
<field name="new_compute_type"/>
<field name="new_check_norm"/>
<field name="new_department_ids" widget="many2many_tags"/>
<field name="new_in_charge_role_ids" widget="many2many_tags"/>
<field name="new_employee_id"/>
<field name="new_start_index_time"/>
<field name="new_end_index_time"/>
</tree>
</field>
</group>
</page>
</notebook>
</sheet>
@@ -35,15 +35,32 @@
</group>
<notebook>
<page string="员工绩效">
<field name="change_employee_library_ids">
<tree editable="bottom">
<group string="原员工指标库">
<field name="change_employee_library_ids" string=" ">
<tree editable="bottom" create="false" delete="false" edit="false">
<field name="dimension"/>
<field name="change_employee_library_id" column_invisible="1"/>
<field name="department_ids" widget="many2many_tags"/>
<field name="users_role_ids"/>
<field name="employee_ids"/>
<field name="users_role_ids" widget="many2many_tags"/>
<field name="employee_ids" widget="many2many_tags"/>
<field name="start_index_time"/>
<field name="end_index_time"/>
</tree>
</field>
</group>
<group string="新员工指标库">
<field name="new_change_employee_library_ids" string=" ">
<tree editable="bottom" delete="false">
<field name="new_change_employee_library_id" column_invisible="1"/>
<field name="new_dimension"/>
<field name="new_department_ids" widget="many2many_tags"/>
<field name="new_users_role_ids" widget="many2many_tags"/>
<field name="new_employee_ids" widget="many2many_tags"/>
<field name="new_start_index_time"/>
<field name="new_end_index_time"/>
</tree>
</field>
</group>
</page>
</notebook>
</sheet>