#fix: Employee Performance Management Module and few HRMS bugs

This commit is contained in:
seshikanth 2026-06-24 15:23:48 +05:30
parent adc4733e15
commit 3ff97c7c8a
6 changed files with 68 additions and 35 deletions

View File

@ -13,7 +13,7 @@
'depends': ['base', 'hr','hr_employee_extended'], 'depends': ['base', 'hr','hr_employee_extended'],
'data': [ 'data': [
'data/reminder_corn.xml', # 'data/reminder_corn.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'security/security_groups.xml', 'security/security_groups.xml',
'security/performace_record_rules.xml', 'security/performace_record_rules.xml',

View File

@ -90,6 +90,7 @@ class AppraisalTemplate(models.Model):
name = fields.Char(string="Name") name = fields.Char(string="Name")
employee_evaluator_name_id = fields.Many2one('employee.appraisal.evaluator', string="Employee Appraisal Evaluator") employee_evaluator_name_id = fields.Many2one('employee.appraisal.evaluator', string="Employee Appraisal Evaluator")
employee_eva_id = fields.Many2one('hr.employee',string="Manager") employee_eva_id = fields.Many2one('hr.employee',string="Manager")
image_template = fields.Image(related='employee_eva_id.image_1920', string="Image")
hr_employee_id = fields.Many2one('hr.employee',string="Employee HR Employee") hr_employee_id = fields.Many2one('hr.employee',string="Employee HR Employee")
employee_department_id = fields.Many2one('hr.department',string="Department") employee_department_id = fields.Many2one('hr.department',string="Department")
company_id = fields.Many2one('res.company', string="Company",default=lambda self: self.env.company) company_id = fields.Many2one('res.company', string="Company",default=lambda self: self.env.company)

View File

@ -11,6 +11,7 @@ class HrHeadNofication(models.Model):
return self.env.user.employee_id return self.env.user.employee_id
hr_employee_id = fields.Many2one('hr.employee', string='Employee', default=_default_employee_get) hr_employee_id = fields.Many2one('hr.employee', string='Employee', default=_default_employee_get)
image_1920 = fields.Image(related='hr_employee_id.image_1920')
name = fields.Char("Subject") name = fields.Char("Subject")
appraisal_type_id = fields.Many2one('employee.appraisal.type') appraisal_type_id = fields.Many2one('employee.appraisal.type')
appraisal_period_id = fields.Many2one('employee.appraisal.year', appraisal_period_id = fields.Many2one('employee.appraisal.year',

View File

@ -47,6 +47,7 @@ class HrNoticeAppraisal(models.Model):
new_end_date = fields.Datetime(string="New End Date") new_end_date = fields.Datetime(string="New End Date")
stage_config = fields.Many2many('employee.stage.config',string='Stages') stage_config = fields.Many2many('employee.stage.config',string='Stages')
hr_department_ids = fields.Many2many('hr.department', string="Departments") hr_department_ids = fields.Many2many('hr.department', string="Departments")
image_1920 = fields.Image(related='hr_employee_id.image_1920',string='Employee Image')
# @api.model # @api.model
# def create(self, vals): # def create(self, vals):

View File

@ -15,17 +15,22 @@
<field name="employee_state" widget="statusbar"/> <field name="employee_state" widget="statusbar"/>
</header> </header>
<sheet> <sheet>
<field name="image_template"
widget="image"
class="oe_avatar"
options="{'preview_image': 'image_template'}"/>
<group string="Details" col="2"> <group string="Details" col="2">
<group> <group>
<field name="seq" string="Performance Id"/> <field name="seq" string="Reference"/>
<field name="name" string="Reference" placeholder="Administration Appraisal Template"/> <field name="name" string="Subject" readonly="1" placeholder="Administration Appraisal Template"/>
<field name="manager_ids" widget="many2many_tags" string="Performance Evaluator" invisible="1"/> <field name="manager_ids" widget="many2many_tags" string="Performance Evaluator"
<field name="employee_eva_id"/> invisible="1"/>
<field name="employee_department_id"/> <field name="employee_eva_id" readonly="1" options="{'no_open': True}"/>
<field name="appraisal_period_type_id" string="Performance Type"/> <field name="employee_department_id" readonly="1" options="{'no_open': True}"/>
<field name="appraisal_period_id" string="Performance Period"/> <field name="appraisal_period_type_id" string="Appraisal Type" readonly="1" options="{'no_open' : True}"/>
<field name="hr_employee_id" string="HR"/> <field name="appraisal_period_id" string="Appraisal Period" readonly="1" options="{'no_open' : True}"/>
<field name="stage_config_ids" widget="many2many_tags"/> <field name="hr_employee_id" string="HR" readonly="1" options="{'no_open' : True}"/>
<field name="stage_config_ids" widget="many2many_tags" readonly="1"/>
</group> </group>
<group> <group>
<field name="company_id" string="Company"/> <field name="company_id" string="Company"/>
@ -34,8 +39,8 @@
<!-- <field name="hr_email_notify" string="Send Email if HR APPROVE or REJECT Evaluation?"/>--> <!-- <field name="hr_email_notify" string="Send Email if HR APPROVE or REJECT Evaluation?"/>-->
<field name="start_date" readonly="1"/> <field name="start_date" readonly="1"/>
<field name="end_date" readonly="1"/> <field name="end_date" readonly="1"/>
<field name="template_rating_bool"/> <field name="template_rating_bool" string="Employee Rating"/>
<field name="template_point_bool"/> <field name="template_point_bool" string="Employee points"/>
<field name="kra_weightage"/> <field name="kra_weightage"/>
</group> </group>
</group> </group>

View File

@ -6,7 +6,8 @@
<form string="HR Notice"> <form string="HR Notice">
<header> <header>
<button name="action_send_notice" string="Send Appraisal Initiation" type="object" <button name="action_send_notice" string="Send Appraisal Initiation" type="object"
class="btn btn-success" groups="hrms_employee_appraisal.group_appraisal_hr,hrms_employee_appraisal.group_appraisal_management" class="btn btn-success"
groups="hrms_employee_appraisal.group_appraisal_hr,hrms_employee_appraisal.group_appraisal_management"
invisible="state != 'draft'"/> invisible="state != 'draft'"/>
<button name="action_open_postpone_wizard" string="Postpone" type="object" <button name="action_open_postpone_wizard" string="Postpone" type="object"
class="btn-warning" invisible="state != 'sent'"/> class="btn-warning" invisible="state != 'sent'"/>
@ -15,19 +16,33 @@
<field name="state" widget="statusbar"/> <field name="state" widget="statusbar"/>
</header> </header>
<sheet> <sheet>
<!-- <div class="oe_title" style="display:flex; align-items:center; gap:20px;">-->
<!-- <field name="image_1920"-->
<!-- widget="image"-->
<!-- class="oe_avatar"-->
<!-- readonly="1"/>-->
<!-- <h1>-->
<!-- <field name="seq" readonly="1"/>-->
<!-- </h1>-->
<!-- </div>-->
<field name="image_1920"
widget="image"
class="oe_avatar"
readonly="1"/>
<group col="2"> <group col="2">
<group> <group>
<field name="seq"/> <field name="seq"/>
<field name="hr_employee_id" string="Created BY" readonly="1" options="{'no_open': True}"/> <field name="hr_employee_id" string="Employee" readonly="1" options="{'no_open': True}"/>
<field name="appraisal_type_id" <field name="appraisal_type_id"
options="{'no_edit': True, 'no_create': True, 'no_open': True}" options="{'no_edit': True, 'no_create': True, 'no_open': True}"
readonly="state != 'draft'"/> readonly="1"/>
<field name="appraisal_notice_id" <field name="appraisal_notice_id"
options="{'no_edit': True, 'no_create': True, 'no_open': True}" options="{'no_edit': True, 'no_create': True, 'no_open': True}"
readonly="state != 'draft'"/> readonly="1"/>
<field name="subject" readonly="state != 'draft'"/> <field name="subject" readonly="1"/>
<field name="start_date" readonly="state != 'draft'" force_save="1"/> <field name="start_date" readonly="1" force_save="1"/>
<field name="end_date" readonly="state != 'draft'" force_save="1"/> <field name="end_date" readonly="1" force_save="1"/>
</group> </group>
<group> <group>
<field name="employee_ids" widget="many2many_tags" required="1" <field name="employee_ids" widget="many2many_tags" required="1"
@ -35,13 +50,13 @@
<field name="manager_ids" widget="many2many_tags" readonly="state != 'draft'"/> <field name="manager_ids" widget="many2many_tags" readonly="state != 'draft'"/>
<field name="hr_department_ids" widget="many2many_tags" readonly="state != 'draft'"/> <field name="hr_department_ids" widget="many2many_tags" readonly="state != 'draft'"/>
<field name="stage_config" widget="many2many_tags" required="1" <field name="stage_config" widget="many2many_tags" required="1"
readonly="state != 'draft'"/> readonly="1"/>
<field name="employee_rating" readonly="state != 'draft'"/> <field name="employee_rating" readonly="state != 'draft'"/>
<field name="employee_points" readonly="state != 'draft'"/> <field name="employee_points" readonly="state != 'draft'"/>
</group> </group>
</group> </group>
<group> <group>
<field name="body" widget="html" readonly="state != 'draft'"/> <field name="body" widget="html" readonly="1"/>
</group> </group>
<notebook> <notebook>
<page string="Postponed Details"> <page string="Postponed Details">
@ -119,39 +134,49 @@
<field name="state" widget="statusbar"/> <field name="state" widget="statusbar"/>
</header> </header>
<sheet> <sheet>
<div class="oe_button_box" name="button_box"/>
<field name="image_1920"
widget="image"
class="oe_avatar"
options="{'preview_image': 'image_1920'}"/>
<div class="oe_title"> <div class="oe_title">
<h1> <h1>
<field name="name" placeholder="Performance Appraisal Notification"/> <field name="name" placeholder="Performance Appraisal Notification" required="1"
readonly="state != 'draft'"/>
</h1> </h1>
</div> </div>
<group col="2"> <group col="2">
<group string="Appraisal Details"> <group string="Appraisal Details">
<field name="seq"/> <field name="seq"/>
<field name="hr_employee_id"/> <field name="hr_employee_id" readonly="1" options="{'no_open':True}"/>
<field name="appraisal_type_id" options="{'no_create': True,'no_open': True}"/> <field name="appraisal_type_id" options="{'no_create': True,'no_open': True}"
<field name="appraisal_period_id" options="{'no_create': True,'no_open': True}"/> readonly="state != 'draft'"/>
<field name="start_date"/> <field name="appraisal_period_id" options="{'no_create': True,'no_open': True}"
<field name="end_date"/> readonly="state != 'draft'"/>
<field name="start_date" readonly="state != 'draft'"/>
<field name="end_date" readonly="state != 'draft'"/>
</group> </group>
<group string="Assignment"> <group string="Assignment">
<!-- <field name="hr_employee_domain_ids" invisible="1"/>--> <!-- <field name="hr_employee_domain_ids" invisible="1"/>-->
<!-- <field name="hr_ids"--> <!-- <field name="hr_ids"-->
<!-- widget="many2many_tags"/>--> <!-- widget="many2many_tags"/>-->
<!-- <field name="hr_user_domain_ids" invisible="1"/>--> <!-- <field name="hr_user_domain_ids" invisible="1"/>-->
<field name="hr_users_ids" <field name="hr_users_ids"
widget="many2many_tags"/> widget="many2many_tags" readonly="state != 'draft'"/>
<field name="stage_config_ids" widget="many2many_tags" required="1"/> <field name="stage_config_ids" widget="many2many_tags" required="1"
readonly="state != 'draft'"/>
</group> </group>
</group> </group>
<notebook> <notebook>
<page string="Notification Message"> <page string="Notification Message">
<field name="body" widget="html"/> <field name="body" widget="html" readonly="state != 'draft'"/>
</page> </page>
<page string="Audit"> <page string="Audit">
<group> <group>
<field name="create_uid" readonly="1"/> <field name="create_uid" readonly="1" options="{'no_open':True}"/>
<field name="create_date" readonly="1"/> <field name="create_date" readonly="1"/>
<field name="write_uid" readonly="1"/> <field name="write_uid" readonly="1" options="{'no_open':True}"/>
<field name="write_date" readonly="1"/> <field name="write_date" readonly="1"/>
</group> </group>
</page> </page>