appraisal button+remove raise
This commit is contained in:
parent
35d56421c5
commit
e0289b3642
|
|
@ -18,6 +18,8 @@ class AppraisalPlan(models.Model):
|
|||
standard_appraisal_id = fields.One2many('standard.appraisal', 'standard_appraisal_line')
|
||||
manager_appraisal_id = fields.One2many('manager.appraisal', 'manager_appraisal_line')
|
||||
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
|
||||
appraisal_result_ids = fields.Many2many("appraisal.result", string="Appraisal Result", required=True)
|
||||
|
||||
|
||||
# Compute total field
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ class AppraisalResult(models.Model):
|
|||
result_from = fields.Float()
|
||||
result_to = fields.Float()
|
||||
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
|
||||
appraisal_plan_ids = fields.Many2many("appraisal.plan", string="Appraisal Plan")
|
||||
|
||||
|
||||
# Constrains for result_from and result_to if it's value is less than zero or greater than 100
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
<group>
|
||||
<field name="name" string="Plan name" required="1"/>
|
||||
<field name="department_id" string="Department"/>
|
||||
<field name="appraisal_result_ids" widget="many2many_tags"/>
|
||||
<field name="is_manager" string="Is manager?"/>
|
||||
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
||||
</group>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
<field name="name" string="Result name" required="1"/>
|
||||
<field name="result_from" string="Result from" required="1"/>
|
||||
<field name="result_to" string="Result to" required="1"/>
|
||||
<field name="appraisal_plan_ids" widget="many2many_tags"/>
|
||||
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
|
|
|
|||
|
|
@ -2629,6 +2629,13 @@ msgstr "الدورة التدريبية"
|
|||
msgid "Appraisal Result"
|
||||
msgstr "نتيجة التقييم"
|
||||
|
||||
#. module: exp_official_mission
|
||||
#: code:addons/exp_official_mission/models/hr_official_mission.py:0
|
||||
#: model_terms:ir.ui.view,arch_db:exp_official_mission.employee_training_form_view
|
||||
#, python-format
|
||||
msgid "Employees Appraisal"
|
||||
msgstr "تقييم الموظفين"
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,16 +55,3 @@ class EmployeeAppraisal(models.Model):
|
|||
res = super(EmployeeAppraisal, self).onchange_appraisal_lines()
|
||||
return res
|
||||
|
||||
|
||||
|
||||
|
||||
class AppraisalResult(models.Model):
|
||||
_inherit = 'appraisal.result'
|
||||
|
||||
appraisal_plan_ids = fields.Many2many("appraisal.plan", string="Appraisal Plan")
|
||||
|
||||
|
||||
class AppraisalPlan(models.Model):
|
||||
_inherit = 'appraisal.plan'
|
||||
|
||||
appraisal_result_ids = fields.Many2many("appraisal.result", string="Appraisal Result", required=True)
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@ class HrOfficialMission(models.Model):
|
|||
attachment_count = fields.Integer(string="Attachments", compute="_compute_attachment_count")
|
||||
training_details = fields.Html('Training Details')
|
||||
trainer_id = fields.Many2one('res.partner', string="Trainer")
|
||||
appraisal_count = fields.Integer(string="Appraisals", compute="get_employees_appraisal")
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -182,6 +184,32 @@ class HrOfficialMission(models.Model):
|
|||
'context': ctx,
|
||||
}
|
||||
|
||||
def get_employees_appraisal(self):
|
||||
for rec in self:
|
||||
rec.appraisal_count = 0
|
||||
employee_ids = rec.employee_ids.mapped('employee_id')
|
||||
training = rec.env['hr.employee.appraisal'].search(
|
||||
[('employee_id', 'in', employee_ids.ids), ('state', '=', 'state_done'),('mission_id', '=', rec.id)])
|
||||
rec.appraisal_count = len(training)
|
||||
|
||||
|
||||
def action_employees_appraisal(self):
|
||||
employee_ids = self.employee_ids.mapped('employee_id')
|
||||
training = self.env['hr.employee.appraisal'].search(
|
||||
[('employee_id', 'in', employee_ids.ids), ('state', '=', 'state_done'), ('mission_id', '=', self.id)])
|
||||
print(training,"training>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.")
|
||||
return {
|
||||
'name': (_("Employees Appraisal")),
|
||||
'view_mode': 'tree',
|
||||
'view_id': False,
|
||||
'res_model': 'hr.employee.appraisal',
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'current',
|
||||
'domain': "[('id', 'in', %s)]" % training.ids,
|
||||
'context': {}
|
||||
}
|
||||
|
||||
|
||||
def check_appraisal(self):
|
||||
if any(self.employee_ids.mapped('appraisal_id')):
|
||||
self.appraisal_found = True
|
||||
|
|
|
|||
|
|
@ -26,48 +26,6 @@
|
|||
</record>
|
||||
|
||||
|
||||
<record id="employee_appraisal_result_inherit" model="ir.ui.view">
|
||||
<field name="name">appraisal.result.form.inherit</field>
|
||||
<field name="model">appraisal.result</field>
|
||||
<field name="inherit_id" ref="exp_hr_appraisal.appraisal_result_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<xpath expr="//field[@name='result_to']" position="after">
|
||||
<field name="appraisal_plan_ids" widget="many2many_tags"/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="employee_appraisal_result_inherit" model="ir.ui.view">
|
||||
<field name="name">appraisal.result.form.inherit</field>
|
||||
<field name="model">appraisal.result</field>
|
||||
<field name="inherit_id" ref="exp_hr_appraisal.appraisal_result_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<xpath expr="//field[@name='result_to']" position="after">
|
||||
<field name="appraisal_plan_ids" widget="many2many_tags"/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="employee_appraisal_plan_inherit" model="ir.ui.view">
|
||||
<field name="name">appraisal.plan.form.inherit</field>
|
||||
<field name="model">appraisal.plan</field>
|
||||
<field name="inherit_id" ref="exp_hr_appraisal.appraisal_plan_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<xpath expr="//field[@name='department_id']" position="after">
|
||||
<field name="appraisal_result_ids" widget="many2many_tags"/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -60,6 +60,12 @@
|
|||
<field name="attachment_count" widget="statinfo" string="Attachments"
|
||||
options="{'reload_on_button': true}"/>
|
||||
</button>
|
||||
|
||||
<button name="action_employees_appraisal" class="oe_stat_button" icon="fa-file-text-o"
|
||||
type="object">
|
||||
<field name="appraisal_count" widget="statinfo" string="Employees Appraisal"
|
||||
options="{'reload_on_button': true}"/>
|
||||
</button>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
|
|
@ -180,8 +186,7 @@
|
|||
|
||||
<field name="train_cost_emp" string="Training Cost"
|
||||
groups="hr_base.group_account_manager,hr.group_hr_user,hr_base.group_division_manager"/>
|
||||
<field name="appraisal_id" string="Appraisal" readonly="1" force_save="1"
|
||||
attrs="{'column_invisible':[('parent.appraisal_found','=',False)]}"/>
|
||||
<field name="appraisal_id" string="Appraisal" readonly="1" force_save="1" invisible="1"/>
|
||||
<field name="appraisal_result" string="Appraisal Result" readonly="1"
|
||||
force_save="1"
|
||||
attrs="{'column_invisible':[('parent.appraisal_check','=',False)]}"/>
|
||||
|
|
@ -261,7 +266,7 @@
|
|||
groups="hr_base.group_account_manager,hr.group_hr_user,hr_base.group_division_manager"/>
|
||||
<field name="appraisal_id" string="Appraisal" readonly="1"
|
||||
force_save="1"
|
||||
attrs="{'column_invisible':[('parent.appraisal_check','=',False)]}"/>
|
||||
invisible="1"/>
|
||||
<field name="appraisal_result" string="Appraisal Result" readonly="1"
|
||||
force_save="1"
|
||||
attrs="{'column_invisible':[('parent.appraisal_check','=',False)]}"/>
|
||||
|
|
|
|||
|
|
@ -48,8 +48,6 @@ class HrOfficialMission(models.Model):
|
|||
emp.employee_id.write(
|
||||
{'work_state': self.mission_type.work_state, 'active_mission_id': emp.id})
|
||||
self.call_cron_function()
|
||||
else:
|
||||
raise exceptions.Warning(_('Training Cost Must be Bigger than Zero'))
|
||||
|
||||
else:
|
||||
res = super(HrOfficialMission, self).approve()
|
||||
|
|
|
|||
Loading…
Reference in New Issue