diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 3b6c6a19900..c368793b9be 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -282,9 +282,21 @@ class crm_lead(base_stage, osv.osv): if not stage_id: return {'value':{}} stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context) + if stage.state == "draft": + return {'value':{'probability': 0.0}} + if stage.state == "open": + cases = self.browse(cr, uid, ids, context=context) + data = {'active': True} + for case in cases: + if case.stage_id and case.stage_id.state == 'draft': + data['date_open'] = fields.datetime.now() + if not case.user_id: + data['user_id'] = uid + return {'value':data} if not stage.on_change: return {'value':{}} - return {'value':{'probability': stage.probability}} + else: + return {'value':{'probability': stage.probability}} def _check(self, cr, uid, ids=False, context=None): """ Override of the base.stage method. diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 2c139470fdf..31d08c3c046 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -428,26 +428,18 @@
-
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index f6f0896564d..844357e86f1 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -242,6 +242,28 @@ class hr_applicant(base_stage, osv.Model): _group_by_full = { 'stage_id': _read_group_stage_ids } + + def onchange_stage_id(self, cr, uid, ids, stage_id, context={}): + if context is None: + context = {} + if not stage_id: + return {'value':{}} + stage = self.pool.get('hr.recruitment.stage').browse(cr, uid, stage_id, context) + if stage.state == 'done': + context['onchange'] = True + self.case_close_with_emp(cr, uid, ids, context) + if stage.state == "draft": + return {'value':{'active': True,'date_open': False, 'date_closed': False}} + if stage.state == "open": + cases = self.browse(cr, uid, ids, context=context) + data = {'active': True} + for case in cases: + if case.stage_id and case.stage_id.state == 'draft': + data['date_open'] = fields.datetime.now() + if not case.user_id: + data['user_id'] = uid + return {'value':data} + return {'value':{}} def onchange_job(self,cr, uid, ids, job, context=None): result = {} @@ -407,8 +429,11 @@ class hr_applicant(base_stage, osv.Model): 'address_home_id': address_id, 'department_id': applicant.department_id.id }) - self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context) - self.case_close(cr, uid, [applicant.id], context) + if context.get('onchange'): + return {'value':{'emp_id': emp_id,'active': True, 'date_closed': fields.datetime.now()}} + else: + self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context) + self.case_close(cr, uid, [applicant.id], context) else: raise osv.except_osv(_('Warning!'),_('You must define Applied Job for this applicant.')) diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index 4617011c2f9..ca61479b1b7 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -105,21 +105,11 @@
-
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index cc6f5b05ad8..bf8a2d85d36 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -402,18 +402,12 @@ states="cancelled,done" context="{'button_reactivate':True}"/>