[REVERT] partially reverted wrong change
authorFabien Pinckaers <fp@openerp.com>
Mon, 11 Nov 2013 22:45:09 +0000 (23:45 +0100)
committerFabien Pinckaers <fp@openerp.com>
Mon, 11 Nov 2013 22:45:09 +0000 (23:45 +0100)
bzr revid: fp@openerp.com-20131111224509-xxpw3qltvib53rhj

addons/hr/hr.py
addons/hr/hr_view.xml

index 0b8037e..471d6f1 100644 (file)
@@ -81,7 +81,7 @@ class hr_job(osv.osv):
             nb_employees = len(job.employee_ids or [])
             res[job.id] = {
                 'no_of_employee': nb_employees,
-                'no_of_recruitment': max(0, (job.expected_employees or nb_employees) - nb_employees),
+                'expected_employees': nb_employees + job.no_of_recruitment,
             }
         return res
 
@@ -97,11 +97,11 @@ class hr_job(osv.osv):
     _inherit = ['mail.thread']
     _columns = {
         'name': fields.char('Job Name', size=128, required=True, select=True),
-        'no_of_recruitment': fields.function(_no_of_employee, string='Expected in Recruitment',
-            help='Number of new employees you expect to recruit.',
+        'expected_employees': fields.function(_no_of_employee, string='Total Forecasted Employees',
+            help='Expected number of employees for this job position after new recruitment.',
             store = {
-                'hr.job': (lambda self,cr,uid,ids,c=None: ids, ['expected_employees'], 10),
-                'hr.employee': (_get_job_position, ['job_id'], 11),
+                'hr.job': (lambda self,cr,uid,ids,c=None: ids, ['no_of_recruitment'], 10),
+                'hr.employee': (_get_job_position, ['job_id'], 10),
             }, type='integer',
             multi='no_of_employee'),
         'no_of_employee': fields.function(_no_of_employee, string="Current Number of Employees",
@@ -110,8 +110,7 @@ class hr_job(osv.osv):
                 'hr.employee': (_get_job_position, ['job_id'], 10),
             }, type='integer',
             multi='no_of_employee'),
-        'expected_employees': fields.integer('Total Forecasted Employees',
-            help='Expected number of employees for this job position after new recruitment.'),
+        'no_of_recruitment': fields.float('Expected in Recruitment', help='Number of new employees you expect to recruit.'),
         'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees', groups='base.group_user'),
         'description': fields.text('Job Description'),
         'requirements': fields.text('Requirements'),
@@ -130,15 +129,20 @@ class hr_job(osv.osv):
         ('name_company_uniq', 'unique(name, company_id, department_id)', 'The name of the job position must be unique per department in company!'),
     ]
 
+
+    def on_change_expected_employee(self, cr, uid, ids, no_of_recruitment, no_of_employee, context=None):
+        if context is None:
+            context = {}
+        return {'value': {'expected_employees': no_of_recruitment + no_of_employee}}
+
     def job_recruitement(self, cr, uid, ids, *args):
         for job in self.browse(cr, uid, ids):
-            expected = max(job.no_of_employee + 1, job.expected_employees)
-            self.write(cr, uid, [job.id], {'state': 'recruit', 'expected_employees': expected})
+            no_of_recruitment = job.no_of_recruitment == 0 and 1 or job.no_of_recruitment
+            self.write(cr, uid, [job.id], {'state': 'recruit', 'no_of_recruitment': no_of_recruitment})
         return True
 
     def job_open(self, cr, uid, ids, *args):
-        for job in self.browse(cr, uid, ids):
-            self.write(cr, uid, ids, {'state': 'open', 'expected_employees': job.no_of_employee})
+        self.write(cr, uid, ids, {'state': 'open', 'no_of_recruitment': 0})
         return True
 
 
index 0ce99d9..4922a53 100644 (file)
                         </div>
                         <group>
                             <group name="job_data">
-                                <field name="no_of_employee"/>
-                                <field name="no_of_recruitment"/>
-                                <field name="expected_employees"/>
+                                <field name="no_of_employee" groups="base.group_user"/>
+                                <field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
+                                <field name="expected_employees" groups="base.group_user"/>
                                 <field name="company_id" widget="selection" groups="base.group_multi_company"/>
                                 <field name="department_id"/>
                             </group>