diff --git a/addons/hr_evaluation/__init__.py b/addons/hr_evaluation/__init__.py new file mode 100644 index 00000000000..7fe03d1245a --- /dev/null +++ b/addons/hr_evaluation/__init__.py @@ -0,0 +1,26 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import hr_evaluation + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/hr_evaluation/__terp__.py b/addons/hr_evaluation/__terp__.py new file mode 100644 index 00000000000..4dc5cb4eecd --- /dev/null +++ b/addons/hr_evaluation/__terp__.py @@ -0,0 +1,40 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{ + "name" : "Human Resources Evaluation", + "version" : "0.1", + "author" : "Tiny", + "category" : "Generic Modules/Human Resources", + "website" : "http://www.openerp.com", + "depends" : ["hr","survey"], + "description": "Ability to create employees evaluation.", + "init_xml" : [], + "demo_xml" : ["hr_evaluation_demo.xml"], + "update_xml" : [ +# "security/ir.model.access.csv", + "hr_evaluation_view.xml", + "hr_evaluation_data.xml"], + "active": False, + "installable": True +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py new file mode 100644 index 00000000000..df24164e497 --- /dev/null +++ b/addons/hr_evaluation/hr_evaluation.py @@ -0,0 +1,142 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import time +from osv import fields, osv + +class hr_evaluation_plan(osv.osv): + _name = "hr_evaluation.plan" + _description = "Evaluation Plan" + _columns = { + 'name': fields.char("Evaluation Plan", size=64, required=True), + 'company_id': fields.many2one('res.company', 'Company', required=True), + 'phase_ids' : fields.one2many('hr_evaluation.plan.phase', 'plan_id', 'Evaluation Phases'), + 'month_first': fields.integer('First Evaluation After'), + 'month_next': fields.integer('Next Evaluation After'), + 'active': fields.boolean('Active') + } + _defaults = { + 'active' : lambda *a: True, + } +hr_evaluation_plan() + +class hr_evaluation_plan_phase(osv.osv): + _name = "hr_evaluation.plan.phase" + _description = "Evaluation Plan Phase" + _order = "sequence" + _columns = { + 'name': fields.char("Phase", size=64, required=True), + 'sequence': fields.integer("Sequence"), + 'company_id': fields.related('plan_id','company_id',type='many2one',relation='res.company',string='Company',store=True), + 'plan_id': fields.many2one('hr_evaluation.plan','Evaluation Plan', required=True, ondelete='cascade'), + 'action': fields.selection([ + ('top-down','Top-Down Appraisal Requests'), + ('bottom-up','Bottom-Up Appraisal Requests'), + ('self','Self Appraisal Requests'), + ('final','Final Interview')], 'Action', required=True), + 'survey_id': fields.many2one('survey','Appraisal Form'), + 'send_answer_manager': fields.boolean('All Answers', + help="Send all answers to the manager"), + 'send_answer_employee': fields.boolean('All Answers', + help="Send all answers to the employee"), + 'send_anonymous_manager': fields.boolean('Anonymous Summary', + help="Send an anonymous summary to the manager"), + 'send_anonymous_employee': fields.boolean('Anonymous Summary', + help="Send an anonymous summary to the employee"), + 'wait': fields.boolean('Wait Previous Phases', + help="Check this box if you want to wait that all preceeding phases " + + "are finished before launching this phase.") + + } + _defaults = { + 'sequence' : lambda *a: 1, + } +hr_evaluation_plan_phase() + +class hr_employee(osv.osv): + _inherit="hr.employee" + _columns = { + 'evaluation_plan_id': fields.many2one('hr_evaluation.plan', 'Evaluation Plan'), + 'evaluation_date': fields.date('Next Evaluation', help="Date of the next evaluation"), + } + def onchange_evaluation_plan_id(self, *args): + # return the right evaluation date + pass +hr_employee() + +class hr_evaluation(osv.osv): + _name = "hr_evaluation.evaluation" + _description = "Employee Evaluation" + _rec_name = 'employee_id' + _columns = { + 'date': fields.date("Evaluation Deadline", required=True), + 'employee_id': fields.many2one('hr.employee', "Employee", required=True), + 'manager_id': fields.many2one('res.users', "Manager", required=True), + 'note_summary': fields.text('Evaluation Summary'), + 'note_action': fields.text('Action Plan', + help="If the evaluation does not meet the expectations, you can propose"+ + "an action plan"), + 'rating': fields.selection([ + ('0','Significantly bellow expectations'), + ('1','Did not meet expectations'), + ('2','Meet expectations'), + ('3','Exceeds expectations'), + ('4','Significantly exceeds expectations'), + ], "Overall Rating", help="This is the overall rating on that summarize the evaluation"), + 'survey_request_ids': fields.many2many('survey.request', + 'hr_evaluation_evaluation_requests', + 'evaluation_id', + 'survey_id', + 'Appraisal Forms'), + 'plan_id': fields.many2one('hr_evaluation.plan', 'Plan'), + 'phase_id': fields.many2one('hr_evaluation.plan.phase', 'Phase'), + 'state': fields.selection([ + ('draft','Draft'), + ('wait','Plan In Progress'), + ('progress','Final Validation'), + ('done','Done'), + ('cancel','Cancelled'), + ], 'State', required=True,readonly=True) + } + _defaults = { + 'date' : lambda *a: time.strftime('%Y-%m-%d'), + 'state' : lambda *a: 'draft', + } + + def button_plan_in_progress(self,cr, uid, ids, context): + self.write(cr,uid,ids,{'state':'wait'}) + return True + + def button_final_validation(self,cr, uid, ids, context): + self.write(cr,uid,ids,{'state':'progress'}) + return True + + def button_done(self,cr, uid, ids, context): + self.write(cr,uid,ids,{'state':'done'}) + return True + + def button_cancel(self,cr, uid, ids, context): + self.write(cr,uid,ids,{'state':'cancel'}) + return True + +hr_evaluation() + + diff --git a/addons/hr_evaluation/hr_evaluation_data.xml b/addons/hr_evaluation/hr_evaluation_data.xml new file mode 100644 index 00000000000..ba1951558f4 --- /dev/null +++ b/addons/hr_evaluation/hr_evaluation_data.xml @@ -0,0 +1,1290 @@ + + + + + EMPLOYEE EVALUATION + 20 + + + + + + EMPLOYEE OPINION + 20 + + + + + + EMPLOYEE EVALUATION FORM + + + + + + + PROCESS + + + + + + + + WORK PLAN + + + + + + + EMPLOYEE PERFORMANCE IN KEY AREAS + + + + + + + + + SURVEY + + + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + Employee Details + + multiple_textboxes + The comment you entered is in an invalid format. + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + Employee Information + + multiple_textboxes + The comment you entered is in an invalid format. + + + + Other + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + ENGAGEMENT + + matrix_of_choices_only_one_ans + The comment you entered is in an invalid format. + + + + Other + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + SUBJECT + + matrix_of_choices_only_one_ans + RECOMMENDATIONS / EVALUATIONS + The comment you entered is in an invalid format. + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + LEADERSHIP + + matrix_of_choices_only_one_ans + + + + + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + Supervisors only : + + matrix_of_choices_only_one_ans + RECOMMENDATIONS / EVALUATIONS + The comment you entered is in an invalid format. + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + WORK PLAN + + table + The comment you entered is in an invalid format. + + + + Other + + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + EFFECTIVENESS + + matrix_of_choices_only_one_ans + The comment you entered is in an invalid format. + + + + Other + + + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + CONTINUOUS IMPROVEMENT + + matrix_of_choices_only_one_ans + The comment you entered is in an invalid format. + + + + Other + + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + Additional comments : + + comment + The comment you entered is in an invalid format. + + + + Other + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + OPENNESS + + matrix_of_choices_only_one_ans + The comment you entered is in an invalid format. + + + + Other + + + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + OVERALL PERFORMANCE SUMMARY RATING + + descriptive_text + The comment you entered is in an invalid format. + including the project evaluation form (if any) + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + OVERALL PURPOSE OF EMPLOYEE APPRAISAL + + descriptive_text + The comment you entered is in an invalid format. + * To initiate a clear and open communication of performance expectations + +* To assist employees in their professional growth, through the identification of strengths and opportunities for development + + + + Other + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + MISCELLANEOUS + + matrix_of_choices_only_one_ans + The comment you entered is in an invalid format. + + + + Other + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + Additional comments : + + comment + The comment you entered is in an invalid format. + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + At the outset of the appraisal time period + + descriptive_text + The comment you entered is in an invalid format. + * It is the joint responsibility of the employee and the supervisor (appraiser) to establish a feasible work plan for the coming year, including major employee responsibilities and corresponding benchmarks against which results will be evaluated. + +* Critical or key elements of performance and professional development needs (if any), should also be noted at this time + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + At the conclusion of the appraisal time period + + descriptive_text + The comment you entered is in an invalid format. + * The employee will be responsible for completing a draft of the Appraisal Form as a tool for self-evaluation and a starting point for the supervisor’s evaluation. The employee can add examples of achievements for each criterion. +Once the form had been filled, the employee send it to his supervisor. + +* It is the primary responsibility of the supervisor to gather the necessary input from the appropriate sources of feedback (internal and/or external customers, peers). In case of collaboration with Tiny Belgium, the supervisor must receive completed evaluation form from the employee's Belgian project manager. + +* The supervisor synthesizes and integrates all input into the completed appraisal. He motivates his evaluation in the ad hoc fields. + +* The employee may choose to offer comments or explanation regarding the completed review. + +* The supervisor send the form to the HR department in India and in Belgium. + + + + Other + + + + + + + + do_not_validate + do_not_validate + Please enter a comment. + The choices need to add up to [enter sum here]. + + The comment you entered is in an invalid format. + + This question requires an answer. + + At the supervisor's appraisal date + + descriptive_text + The comment you entered is in an invalid format. + * His direct reports will be invited through OpenERP to express a feedback on their supervisor's leadership and to give their opinion about their own engagement and effectiveness, the continuous improvement and openness in action in the company, ... + +* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor. + + + + Other + + + + + + + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 4 + + + + + + + + 5 + + + + + + + + Demonstrates genuine concern for me as a person. + + + + + + + Name + + + + + + + I'm efficient at work and my achievements are successful. + + + + + + + I am proud to tell others I work here. + + + + + + + Name of your direct supervisor + + + + + + + Actions by Executive management show genuine interest in the well-being of employees. + + + + + + + I know the company's values and live them. + + + + + + + My work contributes towards the continuous improvement of the company, our services or products. + + + + + + + I have enough work. + + + + + + + Date + + + + + + + Position Title + + + + + + + I consistently acquire new knowledge, skills or understanding through contact with my supervisor. He helps me growing my compete + + + + + + + My job provides me with a sense of personal accomplishment. + + + + + + + What I did several months ago is still of use to the company, the services or the products today. + + + + + + + My best achievements have been communicated to the community, internally or to customers. + + + + + + + I have the same opportunity to succeed as others with similar experiences, performance and educational background. + + + + + + + Compared to similar jobs in other companies where I could work, my total compensation is: +(Scale: Well below others, Below othe + + + + + + + Overall, I believe the quality of products and/or services my workgroup delivers is improving. + + + + + + + I would prefer to remain with this company even if a comparable job were available in another company. + + + + + + + Listens and takes into account all ideas and do his best to put in place the best of these. + + + + + + + Appraisal for Period + + + + + + + I mostly work on value-added tasks for the company, the products or the services. (Value-added task : significant improvement pe + + + + + + + Our workgroup identifies and reduces waste of time in our activities and processes. + + + + + + + Taking everything into account, how satisfied are you with your current job? + + + + + + + I understand the company strategy and how my workgroup supports it. + + + + + + + Date of Review + + + + + + + Time management : projects/tasks are completed on time + + + + + + + Results of the bottom-up survey and mitigation actions to face technical, organizational, structural and/or relational issues + + + + + + + + + + Delegation : Ability to efficiently assign tasks to other people + + + + + + + + + Appraiser + + + + + + + Ability to cope with multidisciplinary of team + + + + + + + Enthusiasm & implication toward projects/assignments + + + + + + + Compliance to internal rules and processes (timesheets completion, etc.) + + + + + + + Team spirit : ability to work efficiently with peers, manage the conflicts with diplomacy + + + + + + + Leadership: create a challenging and motivating work environment aligned with the company's strategy + + + + + + + Leadership: sustain subordinates in their professional growth + + + + + + + Ability to manage planning resources, risks, budgets and deadlines + + + + + + + I am willing to put in a great deal of effort beyond what is expected to help my workgroup succeed. + + + + + + + I believe the information that I get from the person I report to. + + + + + + + + Initiative and self autonomy + + + + + + + Ability to follow and complete work as instructed + + + + + + + Decision making + + + + + + + At the conclusion of the appraisal time period: + + + + + + + At the outset of the appraisal time period: + + + + + + + Customer commitment + + + + + + + Communication skills ( written & verbally): clearness, concision, exactitude + + + + + + + Technical skills regarding to the job requirements + + + + + + + Analytical and synthetic mind + + + + + + + Promptness and attendance record + + + + + + + Adaptability : Ability to adapt oneself to organizational changes while keeping efficiency + + + + + + + Creativity and forward looking aptitude + + + + + + + + Title + + + + + + + + Objectives + + + + + + Results + + + + + + Comments + + + + diff --git a/addons/hr_evaluation/hr_evaluation_demo.xml b/addons/hr_evaluation/hr_evaluation_demo.xml new file mode 100644 index 00000000000..89c072e6eb3 --- /dev/null +++ b/addons/hr_evaluation/hr_evaluation_demo.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml new file mode 100644 index 00000000000..451763fde0c --- /dev/null +++ b/addons/hr_evaluation/hr_evaluation_view.xml @@ -0,0 +1,185 @@ + + + + + hr_evaluation.plan.form + hr_evaluation.plan + form + +
+ + + + + + + + + + + + +
+
+
+ + hr_evaluation.plan.form + hr_evaluation.plan + tree + + + + + + + + + + + hr_evaluation.plan + form + tree,form + + + + + + + hr_evaluation.plan.phase.form + hr_evaluation.plan.phase + form + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + hr_evaluation.plan.phase.form + hr_evaluation.plan.phase + tree + + + + + + + + + + + + + hr.hr.employee.view.form + hr.employee + + + + + + + + + + + + + hr_evaluation.evaluation.form + hr_evaluation.evaluation + form + +
+ + + + + + + + + + + + + + + + + + + + + + +